Hallo, ich bin noch neu und kann mit "Suchen" nicht finden, um mein Problem zu lösen. Ich möchte mit einem Atmega16 auf dem PortB an den Pins 1, 2 und 3 (siehe Proggi im Anhang) einen 74HC595 als Schiftregister ansprechen. In der Simulation des GCC zeigt er aber auf PINB1 allerdings keine Reaktion. Kann jemand helfen?? hier mein Programm: #define F_CPU 3686000 //für delay #include <avr/io.h> #include <util/delay.h> unsigned char LED_Ge = 0b10101010; //Variable für LED's gerade unsigned char LED_Ab = 0b01010101; //Variable für LED's abbiegen #define SER PINB1 //Daten #define SC PINB2 //ShiftClock #define LC PINB3 //LatchClock // Funktionen definieren void init (void); void LED (void); // MAIN Funktion int main(void) { init(); while(1 == 1) { LED(); } } void init (void) { DDRC = 0xff; //PortC als Ausgang für WeichenGeradeaus DDRA = 0xff; //PortA als Ausgang für WeichenAbbiegen DDRD = 0x00; //portD als Eingang für Taste 1 bis Taste 8 DDRB = 0b11111110; //PortB0 als Eingang für Taste 9, Rest als Ausgang für Schieberegister LED's PORTD = 0xff; //PullUp für PortD aktiv für Tastereingänge PORTB = 0b00000001; // PullUp für Pin 7 } //*********************** LED's ausgeben ************************* void LED (void) { char i; unsigned char Maske_LED = 0b00000001; for ( i = 0; i < 8; i++) { // Datenausgabe für GE if ( (LED_Ge & Maske_LED) == Maske_LED) { PINB |= (1<<SER); } else { PINB &= ~(1<<SER); } // Shift clock data PINB |= (1<<SC); _delay_ms(3); PINB &= ~(1<<SC); _delay_ms(3); // Datenausgabe für AB if ( (LED_Ab & Maske_LED) == Maske_LED) { PINB |= (1<<SER); } else { PINB &= ~(1<<SER); } // Shift clock data PINB |= (1<<SC); _delay_ms(3); PINB &= ~(1<<SC); _delay_ms(3); // Shift Mask Maske_LED = Maske_LED << 1; } // Latch Clock PINB |= (1<<LC); _delay_ms(3); PINB &= ~(1<<LC); _delay_ms(3); } Viele Grüße, Kai
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.