ATmega 8 -> ATmega 168

Gast #2091148
Lesenswert?

Hallo!
Hab da gerade nen häääänger!
Soll nen Timer im "neuen" M168 erstellen, hab da mal angefangen, geht 
nur leider nicht. Der stpring nicht zum Timer.
1
.include  "m168def.inc"
2
.cseg
3
.org 0
4
;-------------------------------------------------------------------------------
5
; Reset and Interrupt vector             ;VNr.  Beschreibung
6
;-------------------------------------------------------------------------------
7
;0x0000 
8
   jmp    main          ; Reset Handler 
9
;0x0002 
10
   jmp    ORG        ; IRQ0 Handler 
11
;0x0004 
12
   jmp    ORG        ; IRQ1 Handler 
13
;0x0006 
14
   jmp    ORG        ; PCINT0 Handler 
15
;0x0008 
16
   jmp    ORG        ; PCINT1 Handler 
17
;0x000A 
18
   jmp    ORG        ; PCINT2 Handler 
19
;0x000C 
20
   jmp    ORG        ; Watchdog Timer Handler 
21
;0x000E 
22
   jmp    ORG        ; Timer2 Compare A Handler 
23
;0x0010 
24
   jmp    ORG        ; Timer2 Compare B Handler 
25
;0x0012 
26
   jmp    ORG        ; Timer2 Overflow Handler 
27
;0x0014 
28
   jmp    ORG        ; Timer1 Capture Handler 
29
;0x0016 
30
   jmp    ORG        ; Timer1 Compare A Handler 
31
;0x0018 
32
   jmp    ORG        ; Timer1 Compare B Handler 
33
;0x001A 
34
   jmp    ORG        ; Timer1 Overflow Handler 
35
;0x001C 
36
   rjmp    Timer        ; Timer0 Compare A Handler 
37
;0x001E 
38
   jmp    ORG        ; Timer0 Compare B Handler 
39
;0x0020 
40
   jmp    ORG        ; Timer0 Overflow Handler 
41
;0x0022 
42
   jmp    ORG        ; SPI Transfer Complete Handler 
43
;0x0024 
44
   jmp    ORG        ; USART, RX Complete Handler 
45
;0x0026 
46
   jmp    ORG        ; USART, UDR Empty Handler 
47
;0x0028 
48
   jmp    ORG        ; USART, TX Complete Handler 
49
;0x002A 
50
   jmp    ORG        ; ADC Conversion Complete Handler 
51
;0x002C 
52
   jmp    ORG        ; EEPROM Ready Handler 
53
;0x002E 
54
   jmp    ORG        ; Analog Comparator Handler 
55
;0x0030 
56
   jmp    ORG        ; 2-wire Serial Interface Handler 
57
;0x0032 
58
   jmp    ORG        ; Store Program Memory Ready Handler 
59

60
ORG:  reti
61
                                    
62
                 
63
 
64

65

66
.equ    XTAL  =  3686400;H
67

68
;
69
; Namenszuordnung der Register im RAM
70
;
71
.def    LCD_1  =  r16            ; LCD_Register
72
.def    LCD_2  =  r17            ; LCD_Register
73
.def    LCD_3  =  r18            ; LCD_Register
74
.def    temp1  =  r19
75
.def    temp2  =  r20
76
.def    temp3  =  r21
77
.def    temp4  =  r22
78
.def    temp5  =  r23
79
.def    temp6  =  r24
80
.def    temp7  =  r25
81
.def    temp8  =  r26
82
.def    temp9  =  r27
83
.def    temp10  =  r28
84

85
;
86
; Resethanling, booten
87
;
88
main:
89
          ldi       temp1, LOW(RAMEND)       ; Stackpointer initialisieren
90
          out       SPL, temp1
91
          ldi       temp1, HIGH(RAMEND)
92
          out       SPH, temp1        ;  
93

94
      ldi      temp1,0b00111111
95
      out      DDRB,temp1
96

97
          ldi       temp1,0b00000101       ; CS00 setzen: Teiler 1
98
          sts       TCCR0B, temp1
99
 
100
          ldi        temp1,(1<<TOIE0)      ; TOIE0: Interrupt bei Timer Overflow
101
          sts       TIMSK0, temp1
102
 
103
          sei
104

105
mainloop:
106
         rjmp     mainloop
107

108
Timer:   reti
Weiß wer wo der Fehler liegt?
Gast #2091164
Lesenswert?

..versuchs mal mit dem TOV statt dem COMP - oder schalt letzteren ein. 
Und gewöhn Dir besser gleich wieder ab die Interrupttabelle von Hand zu 
programmieren, das führt genau zu solchen Fehlern (und erschwert eine 
Portierung unnötigerweise).

HTH
Gast #2091176
Lesenswert?

so, hab ich gemacht. Hier der kleine Ausschnitt:
1
;0x001A 
2
   jmp    ORG        ; Timer1 Overflow Handler 
3
;0x001C 
4
   jmp    ORG        ; Timer0 Compare A Handler 
5
;0x001E 
6
   jmp    ORG        ; Timer0 Compare B Handler 
7
;0x0020 
8
   rjmp    Timer        ; Timer0 Overflow Handler 
9
;0x0022 
10
   jmp    ORG        ; SPI Transfer Complete Handler

Springt immer noch nicht hin.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren