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
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 ....
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
Pimi schrieb: > Wo finde ich mehrere Infos darüber? Im Vergleich der Datenblätter für den 8er und den 328er. Bei den neueren Controllern heissen die Register anders. Z.B. heisst das Interrupt Mask Register beim Atmega8 für alle 3 Timer TIMSK, beim 328er gibt es 3 Register TIMSK0, TIMSK1, TIMSK2. mfg.
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.
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.
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
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!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.