Fehler beim Kompilieren

Gast #2718378
Lesenswert?

Hallo Profis,
Ich arbeite mit SiSy Software, habe ein lauffähiges Programm für MK2 und 
AtMega8.
Jetzt bin ich auf AtMega238 umgestiegen und wollte das Programm vom 
AtMega8 auf AtMega238 umschreiben. Leider beim Kompilieren kommt ein 
Fehler, obwohl bei AtMega8 es keine Probleme gab.
Fehlerbeschreibung: Die Funktionen: GICR und TIMSK wurden nicht 
deklariert.
Fehlt bei mir eine Header Datei? Wenn ja welche?

Bitte um Tipps
Angehängte Dateien:
Gast #2718391
Lesenswert?

kann es 1. sein das du den Atmega 328 hast ?
kann es 2. sein seine Register bei selbigen ein bisschen anderst heißen 
?

(0x70) TIMSK2 – – – – – OCIE2B OCIE2A TOIE2 163
(0x6F) TIMSK1 – – ICIE1 – – OCIE1B OCIE1A TOIE1 139
(0x6E) TIMSK0

....
Gast #2718967
Lesenswert?

Dex schrieb:
> kann es 1. sein das du den Atmega 328 hast ?

Sorry ich habe mich verschrieben.
Ich habe den Atmega 328.

Dex schrieb:

> kann es 2. sein seine Register bei selbigen ein bisschen anderst heißen
> ?
>
> (0x70) TIMSK2 – – – – – OCIE2B OCIE2A TOIE2 163
> (0x6F) TIMSK1 – – ICIE1 – – OCIE1B OCIE1A TOIE1 139
> (0x6E) TIMSK0
>
> ....
Tut mir Leid aber mit der Aussage kann ich auch nichts anfangen.
Wo finde ich mehrere Infos darüber?

Danke
Gast #2719003
Lesenswert?

Hallo
Nach der Angabe TIMSK0, oder TIMSK1, oder TIMSK2 statt TIMSK ist ein 
Fehler weniger. Da ich ein totaler Neuling bin, weiß ich nicht welche 
von den 3 ich nehmen kann. Ist das egal?

Leider dar zweite Fehler habe ich immer noch. Und zwar:
"Die Funktionen: GICR wurde nicht deklariert".
Wie kann ich das beseitigen?

mfg.
#2719031
Lesenswert?

Pimi schrieb:
> Nach der Angabe TIMSK0, oder TIMSK1, oder TIMSK2 statt TIMSK ist ein
> Fehler weniger. Da ich ein totaler Neuling bin, weiß ich nicht welche
> von den 3 ich nehmen kann. Ist das egal?
Das überlegtst du dir jetzt selber.
Wenn es Timer0 , Timer1 und Timer2 gibt...

Pimi schrieb:
> "Die Funktionen: GICR wurde nicht deklariert".
> Wie kann ich das beseitigen?
Indem du das richtige Register nimmst. In GICR werden die Interrupts 
INT0 und INT1 eingeschaltet. Dann guckst im Datenblatt vom 328er, in 
welchem Register das dort gemacht wird (EICRA, bevor du völlig 
verzweifelst).

mfg.
Gast #2727855
Lesenswert?

Hallo Experten
Es hat nicht geklappt!
Mit Datenblättern habe ich zu wenig Erfahrung und ich check da gar 
nichts. Von Anfang an schreibe ich nicht, dass es sich um einen 
C-Programm handelt.
Und nach wie vor der Timer funktioniert nicht! Ich bin schon langsam 
verzweifelt. Ich habe mit Code Vizard (SiSy-AVR) den Timer für ATmega 
328 generiert (siehe das Grundgerüst in Quellcode)
Der Timer dient zur Steuerung einer Markise: und zwar es werden Signale 
(Windsensor) am Eingang D3 gezählt wenn der Windsensor dreht zu schnell 
geht die Markise zu, sonst bleibt sie offen. Ursprünglich war das für 
den ATmega 8. Ich betone noch mal das Programm für ATmega 8 funktioniert 
einwandfrei.

Bitte um Hilfe!
Mit freundlichen Grüßen
Angehängte Dateien:
Gast #2730755
Lesenswert?

Hallo,
Den Fehler habe ich mit Hilfe behoben:
1.  Falsche Fuses
2.  Falsche Timerkonfiguration:
Ist:  TCCR1B=0x05;    // Teiler 1/1024
      TCCR1B|=0x02;   // Modus: Zählen bis Vergleichswert
korrekt heißt es
     TCCR1B=0x05;    // Teiler 1/1024
     TCCR1B|=0x08;   // Modus: Zählen bis Vergleichswert

An Alle die mir Helfen wollten.
Besten Dank!

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