Hallo,
ich versuche mit folgendem Code den USI(-Counter) zum laufen zu bringen
(Simulation um zu schauen obs überhaupt geht).
Leider Regt sich der USI garnicht und ich hab keine ahnung woran es
liegen könnte.
Bitte sagt mir ob ich einen Fehler mache oder der Simulator des
AVR-Studio misst baut.
1 | .include "tn25def.inc"
|
2 |
|
3 | .def temp = r16
|
4 |
|
5 | .org 0x000
|
6 | RJMP RESET
|
7 | RETI ;RJMP INT0
|
8 | RETI ;RJMP PCINT0
|
9 | RETI ;RJMP TIMER1_COMPA
|
10 | RETI ;RJMP TIMER1_OVF
|
11 | RETI ;RJMP TIMER0_OVF
|
12 | RETI ;RJMP EE_RDY
|
13 | RETI ;RJMP ANA_COMP
|
14 | RETI ;RJMP ADC_COMP ADC
|
15 | RETI ;RJMP TIMER1_COMPB
|
16 | RETI ;RJMP TIMER0_COMPA
|
17 | RETI ;RJMP TIMER0_COMPB
|
18 | RETI ;RJMP WDT Watchdog
|
19 | RETI ;RJMP USI_START
|
20 | RETI ;RJMP USI_OVF
|
21 |
|
22 | RESET:
|
23 | LDI temp, (1<<WGM01)
|
24 | OUT TCCR0A, temp ;T/C0 => CTC
|
25 |
|
26 | LDI temp, 51
|
27 | OUT OCR0A, temp ;T/C0 TOP = 51
|
28 |
|
29 | LDI temp, (1<<OCIE0A)
|
30 | OUT TIMSK, temp ;T/C0 COMPA INT
|
31 |
|
32 | LDI temp, (1<<CS01)
|
33 | OUT TCCR0B, temp ;T/C0 PSK = 8
|
34 |
|
35 |
|
36 | LDI temp, (1<<USIWM0) | (1<<USICS0) ;USI => Three-wire mode
|
37 | OUT USICR, temp ; USI Clock Source = T/C0 Match
|
38 |
|
39 | SEI
|
40 |
|
41 | MAIN:
|
42 |
|
43 | RJMP MAIN
|