#include "CDisplay.h" CDisplay::CDisplay() { initDisplay(); } CDisplay::~CDisplay() {} void CDisplay::initDisplay() { for(int i=0; i<12; i++) display[i] = 0x0; // display[0] = 0xFFFF; // display[11] = 0xFFFF; //Output-Pins setzen pinMode(BD_B0, OUTPUT); pinMode(BD_B1, OUTPUT); pinMode(BD_B2, OUTPUT); pinMode(SR_SER, OUTPUT); pinMode(SR_RCK, OUTPUT); pinMode(SR_BSS, OUTPUT); pinMode(BD_OE, OUTPUT); pinMode(BD_B3, OUTPUT); pinMode(BUZ_PIN, OUTPUT); pinMode(BUT_A, INPUT); pinMode(BUT_B, INPUT); digitalWrite(BD_OE, LOW); digitalWrite(BD_B0, LOW); digitalWrite(BD_B1, LOW); digitalWrite(BD_B2, LOW); digitalWrite(BD_B3, LOW); for(int i=0; i<12; i++) display[i] = 0x0000; } void CDisplay::shiftBit(bool bit) { // PORTB &= ~(1<> i) & 0b1; shiftBit(bit); } } void CDisplay::displayRow(uint8_t row) { // uint8_t push_val; // row = row % 12; // // uint16_t rval = display[row]; // // uint16_t rval = 0xFFFF - (row << 8); // //Deactivate OE Line // digitalWrite(BD_OE, LOW); // PORTD &= ~(1<>7) & 0xFF)); // //Now activate the corresponding row by some nice bit arithmetics ;) digitalWrite(BD_B0, row&0b1); digitalWrite(BD_B1, (row>>1)&0b1); digitalWrite(BD_B2, (row>>2)&0b1); digitalWrite(BD_B3, (row>>3)&0b1); digitalWrite(BD_OE, LOW); // PORTD |= ((row&0b1)<>1)&0b1)<>2)&0b1)<>3)&0b1)<