hallo, habe ein Prog-geschrieben, welches ein Schrittmotor steuern soll(Geschwindigkeit) bei Programmstart, dreht sich der Schrittmotor mit einer bestimmten Geschwindigkeit. Wenn ich dem Avr nun per Uart die neue Geschwindigkeit mitteilen möchte, stoppt der motor!!!! und der Timer auch. hier mein Code: #include <avr/io.h> #include <avr/signal.h> #include <avr/sfr_defs.h> #include <avr/interrupt.h> #define true 1 unsigned char tick=0; unsigned char counter=0; unsigned char temp; unsigned char geschwindigkeit=10; INTERRUPT (SIG_OVERFLOW0) { if (tick==geschwindigkeit) { switch(counter) { case 0: tick=0; PORTB=0x00; counter++; break; case 1: tick=0; PORTB=0x01; counter++; break; case 2: tick=0; PORTB=0x03; counter++; break; case 3: tick=0; PORTB=0x02; counter=0; break; } } tick++; } INTERRUPT (SIG_UART_RECV) { temp=UDR; geschwindigkeit=temp; tick=0; } /************************************************/ void uartreceive_ini (void) { UBRR=25; sbi(UCSRB,RXEN); sbi(UCSRB,RXCIE); } /************************************************/ int main (void) { uartreceive_ini(); TCCR0=0x02; TCNT0=0x00; TIMSK=0x02; DDRB=0xFF; PORTB=0x00; sei(); while(1) { } return 0; } gruß Peter Bauer
so habe es jetzt gelöst. habe aus dem INTERRUPT (SIG_UART_RECV) { temp=UDR; geschwindigkeit=temp; tick=0; } ein SIGNAL (SIG_UART_RECV) { temp=UDR; geschwindigkeit=temp; tick=0; } gemacht und es funktioniert!! einen schönen Formel1 Sonntag Peter Bauer
Hallo, Ich habe ein ähnliches Problem: Ich benötige am ATMega128 4 Interrupts: 1. UART0 2. UART1 3. Ext. Interrupt 6 (Port E.6) 4. Ext. Interrupt 7 (Port E.7) Solange ich den Chip nur für die UART Interrupts konfiguriere funktioniert der Interrupt von UART0. Sobald ich die Ext. Int. zusätzlich konfiguriere tut der UART Interrupt nicht mehr! Kann mir jemand helfen?
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.