Hy
Ich habe ein altes Programm an nem Mega16 benutzt, dass per RS232 Daten
empfängt und diese per ISR verarbeitet hat.
Das gleiche Programm will jetzt an meinem Mega8 einfach keine ISR mehr
auslösen und ich finde keinen Fehler..
Um es zu testen hab ich auch versucht, einfach mal was zu senden, wenn
was ankommt, aber auch das funktioniert nicht.
DIE KOMMUNIKATION ansonsten funktioniert einwandfrei...
1 | #define F_CPU 8000000UL // MP-Takt
|
2 | #include <avr/io.h>
|
3 | #include <stdio.h>
|
4 | #include <stdlib.h>
|
5 | #include <inttypes.h>
|
6 | #include <avr/interrupt.h>
|
7 |
|
8 | #define BAUD 38400UL
|
9 | #define UBRR_BAUD ((F_CPU)/(16*(BAUD))-1)
|
10 |
|
11 | int main (void)
|
12 | {
|
13 |
|
14 | ...
|
15 | sei();
|
16 | ..
|
17 | }
|
18 |
|
19 | ISR(SIG_UART_RECV)
|
20 | {
|
21 | /*
|
22 | Mode = UDR;
|
23 | while (!(UCSRA & (1<<RXC)));
|
24 | MPWMa = UDR;
|
25 | while (!(UCSRA & (1<<RXC)));
|
26 | MPWM = UDR;
|
27 | */
|
28 | while (!(UCSRA & (1<<UDRE)));
|
29 | UDR = 0xFF;
|
30 | }
|