rotten Postat Aprilie 24, 2008 Partajează Postat Aprilie 24, 2008 Nu reusesc sa declansez intreruperea RX pt portul serial cu un microcontroller ATMEGA32 In sistemul clasic : cu verificarea bitului RXC din UCSRA totul merge bine dar intreruperea nu se declanseaza niciodata codul in C functioneaza bine => device-ul e ok, dar am nevoie de asm pt viteza OC1Aaddr si URXCaddr sant luate din m32def.inc //initializare procesor..include "m32def.inc".....org 0x0000 rjmp RESET; res.org OC1Aaddr rjmp OC1A_I.org URXCaddr rjmp SERIALSERIAL: in r16,UDR //out UDR,r16 //ldi r16,'X' mov R_SERIAL,r16 call SERIAL_OUT retiRESET: ..... ldi r16,0x00 out UCSRA,r16 ldi r16,0b1001_1000;(1<<RXCIE)|(1<<RXEN) | (1<<TXEN) out UCSRB,r16 ldi r16,(1<<URSEL)| (0<<USBS) | (1<<UCSZ0) | (1<<UCSZ1)|(0<<UPM1) | (0<<UPM0) out UCSRC,r16 ldi r16,129 out UBRRL,r16 ...... sei....... LOOP: nop jmp LOOP Link spre comentariu
rotten Postat Aprilie 24, 2008 Autor Partajează Postat Aprilie 24, 2008 am gasit : se declansa prea des intreruperea timer-ului si cea de la usart nu mai apucat niciodata Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum