Forum: Mikrocontroller und Digitale Elektronik Keine Interrupt-Bedienung beim Atmega8!??


von Marco (Gast)


Lesenswert?

Hallo!

Ich portiere gerade meinen Code, der auf einem Atmega32-DevBoard
lauffaehig ist, nach'm Atmega8L, der frisch aus'm Laden kam und
auf'er eigener Platine sitzt.

Nu hab ich Probleme bei den Interrupt-Routinen, die werden
wahrscheinlich nicht angesprungen. Zum Bsp. funzt eine UART-lib, die
ohne Interruptroutinen auskommt, die andere aber nicht.

Ich koennt mir denken, dass es am Compiler oder an den Fuses liegt?!
Habt ihr aehnliche Probleme gehabt oder ne Idee wo ich suchen koennt?

  Marco

Randdaten:
7,372MHz Crystal
lfuse EF
hfuse D9
avr-gcc

von crazy horse (Gast)


Lesenswert?

dran gedacht, dass die Interruptvektoren beim Mega8  1word breit sind,
beim Mega32 aber 2word?

von Marco (Gast)


Lesenswert?

Hi!

Ne das wusst ich noch nicht. Aber was bedeutet das fuer mich (als
Programmierer in C). Was muss ich den anders machen?

  Gruss
     Marco

von Rahul (Gast)


Lesenswert?

Den Programmcode für den ATmega compilieren (mit den entsprechenden
Einstellungen im Makefile...)
Die Fuses solltest du dir vielleicht auch noch mal angucken.

von Marco (Gast)


Lesenswert?

Hi!

Im Makefile stell ich den Typ und die Taktfrequenz um, weiter nichts.

Fuses mal als binary:

lowfuse:
BODLEVEL  BODEN  SUT1..0  CKSEL3..0
   1        1      10        1111


highfuse:
RSTDISBL   WDTON  SPIEN  CKOPT  EESAVE  BOOTSZ1..0  BOOTRST
   1         1      0      1       1       00          1

  Marco

von Marco (Gast)


Lesenswert?

Hi!

Das Raetzel ist geloest, das Prob war doch anders:
Es hat an der eingebundenen <delay.h> gelegen.
Woran es 'genau' liegt, habe ich noch nicht weiterverfolt und dafuer
ist es heute auch schon zu spaet ;-)

 MFG & Danke
      Marco

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.