[an error occurred while processing this directive]
|
вроде вс верно, но даже в прерывание не вываливается ...
мож кто свежими глазами глянет и увидит что не так ...
а мож ясчас отправлю и , как всегда, сам додумаюсь, где собака порылась...
эх.
лууп: serout: inc temp1 ржмп лууп
; ***** INTERRUPT VECTORS ************************************************
reti; rjmp TACHO_R ;reti ;.equ INT0addr = 0x0001 ; External Interrupt Request 0
reti; rjmp TACHO_L ;reti ;.equ INT1addr = 0x0002 ; External Interrupt Request 1
reti ;.equ ICP1addr = 0x0003 ; Timer/Counter1 Capture Event
reti ;.equ OC1Aaddr = 0x0004 ; Timer/Counter1 Compare Match A
reti ;.equ OC1addr = 0x0004 ; For compatibility
reti ;.equ OVF1addr = 0x0005 ; Timer/Counter1 Overflow
reti ;rjmp TACHOMETER ;reti ;.equ OVF0addr = 0x0006 ; Timer/Counter0 Overflow
rjmp RECIEVE; reti ;.equ URXCaddr = 0x0007 ; USART, Rx Complete
reti ;.equ URXC0addr = 0x0007 ; For compatibility
reti ;.equ UDREaddr = 0x0008 ; USART Data Register Empty
reti ;.equ UDRE0addr = 0x0008 ; For compatibility
reti ;.equ UTXCaddr = 0x0009 ; USART, Tx Complete
reti ;.equ UTXC0addr = 0x0009 ; For compatibility
reti ;.equ ACIaddr = 0x000a ; Analog Comparator
reti ;.equ PCIaddr = 0x000b ;
reti ;.equ OC1Baddr = 0x000c ;
reti ;.equ OC0Aaddr = 0x000d ;
reti ;.equ OC0Baddr = 0x000e ;
reti ;.equ USI_STARTaddr = 0x000f ; USI Start Condition
reti ;.equ USI_OVFaddr = 0x0010 ; USI Overflow
reti ;.equ ERDYaddr = 0x0011 ;
reti ;.equ WDTaddr = 0x0012 ; Watchdog Timer Overflow
;###### init UART
; Set baud rate
clr temp0 ; 19200 bpc @ 4Mhz
out UBRRH, temp0
ldi temp0,0x0C; (0d12) 19200 bpc @ 4Mhz
out UBRRL, temp0
; Enable receiver and transmitter
ldi r16, (1<
; Set frame format: 8data, 1stop bit
ldi r16,0b00000110
out UCSRC,r16
.........
паузе
.........
; Wait for empty transmit buffer
sbis UCSRA,UDRE
rjmp serout
; Put data (temp1) into buffer, sends the data
out UDR,temp1
RECIEVE:
sbis UCSRA, RXC
rjmp RECIEVE
inc temp1
; Get and return received data from buffer
in temp1, UDR
reti
E-mail: info@telesys.ru