Wenn ich in der main.c so einen String über USART sende, kommt der bei
der Gegenstelle einmalig an:
1 | if (PIND & (1<<PIND2))
|
2 | {
|
3 | PORTC &= ~(1<<PC3);
|
4 | }
|
5 | else
|
6 | {
|
7 | PORTC |= (1<<PC3);
|
8 | usart_write_str("|Eingang|");
|
9 | }
|
Danach hängt sich der yC aber auf, er bleibt stehen. Die LED leuchtet
z.B. dauer(die an PC3 hängt) und weiter LED's die blinken sollten
bleiben stehen und er reagiert auch nichte mehr auf PIND2.
So sieht die Initialiserung der USART aus:
1 | #define BAUD 9600 //Baudrate für USART
|
2 | #define MYUBRR F_CPU/16/BAUD-1
|
3 |
|
4 |
|
5 | int main(void) {
|
6 |
|
7 | DDRC = 0b11111111; // Port C als Ausgang definieren
|
8 | PORTD = 0b11111101; // 0 = Ausgang // 1 = Eingang
|
9 |
|
10 | USART_Init(MYUBRR);
|
11 | com74hc595_init();
|
und die beiden usart.c und .h habe ich mal in den Anhang gepackt. Kann
mir evtl. jemand da weiterhelfen was ich da wieder mal falsch gemacht
habe?
Danke