projects
/
my-code
/
atmel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
some more debug
[my-code/atmel.git]
/
monolyzer
/
main.asm
diff --git
a/monolyzer/main.asm
b/monolyzer/main.asm
index
b41f3b3
..
8795636
100644
(file)
--- a/
monolyzer/main.asm
+++ b/
monolyzer/main.asm
@@
-14,6
+14,7
@@
.def uart_rxtx = r18
.def count = r19
.def state = r20
.def uart_rxtx = r18
.def count = r19
.def state = r20
+.def scount = r21
;
; interrupts
;
; interrupts
@@
-110,10
+111,33
@@
INIT:
ldi ZL,low(STORAGE)
ldi ZH,high(STORAGE)
ldi ZL,low(STORAGE)
ldi ZH,high(STORAGE)
+ ldi scount,0
+ ldi tmp1,0x23
+INIT_STORAGE:
+ ; init storage
+ st Z+,tmp1
+ st Z+,tmp1
+ add scount,one
+ cpi scount,55
+ brne INIT_STORAGE
+
+ ; storage pointer again
+ ldi ZL,low(STORAGE)
+ ldi ZH,high(STORAGE)
+
; signal ready output
ldi uart_rxtx,0x72
rcall UART_TX
; signal ready output
ldi uart_rxtx,0x72
rcall UART_TX
+DEBUG_PORT:
+ ;rcall UART_RX
+ ;ldi uart_rxtx,0x30
+ ;in tmp1,PIND
+ ;sbrc tmp1,2
+ ;ldi uart_rxtx,0x31
+ ;rcall UART_TX
+ ;rjmp DEBUG_PORT
+
; external interrupt enable
rcall INT0_IR_CONF_INIT
rcall INT0_IR_ENABLE
; external interrupt enable
rcall INT0_IR_CONF_INIT
rcall INT0_IR_ENABLE
@@
-155,7
+179,7
@@
TRANSFER:
; reset storage pointer
ldi ZL,low(STORAGE)
ldi ZH,high(STORAGE)
; reset storage pointer
ldi ZL,low(STORAGE)
ldi ZH,high(STORAGE)
- ldi
tmp1,0
+ ldi
scount,1
; transmit number of sampled words
mov uart_rxtx,count
; transmit number of sampled words
mov uart_rxtx,count
@@
-163,18
+187,18
@@
TRANSFER:
TRANSFER_LOOP:
TRANSFER_LOOP:
- ; check amount of sent data
- cp tmp1,count
- breq IDLE
-
- ; transmit storage
+ ; send data and counter
ld uart_rxtx,Z+
rcall UART_TX
ld uart_rxtx,Z+
rcall UART_TX
; count sent data
ld uart_rxtx,Z+
rcall UART_TX
ld uart_rxtx,Z+
rcall UART_TX
; count sent data
- add tmp1,one
+ add scount,one
+
+ ; check amount of data
+ cpi scount,56
+ breq IDLE
rjmp TRANSFER_LOOP
rjmp TRANSFER_LOOP
@@
-220,6
+244,11
@@
INT0_RUN:
; inc counter
add count,one
; inc counter
add count,one
+
+ ; reset timer
+ ldi tmp1,0
+ out TCNT1H,tmp1
+ out TCNT1L,tmp1
; check for left capacity
cpi count,55
; check for left capacity
cpi count,55