Interrupt AVR Amteg32

OP #2819599
Lesenswert?
• ▲
▼
Hallo,

versuche mich gerade in MC einzuarbeiten und wollte mit Hilfe des 
Interrupts ne LED zum blinken bringen! Will lernen wie man den Interrupt 
benutzt.

Leider gibt der Compiler nur Fehler zurück?

"bool" nicht erkannt / TOV0 nicht erkannt (obwohl dies das 
Interruptregister sein soll) etc.... ?

Was mache ich falsch ?

Programm liegt in der Textdatei
Angehängte Dateien:
Lesenswert?
• ▲
▼
Bernd H. schrieb:

> Wieso erkennt er das Format "bool" nicht?


Weil 'bool' im ursprünglichen C nicht enthalten war. Um 'bool' benutzen 
zu können musst du den Header stdbool.h includieren.

Aber das löst dein Problem nicht, dass du dir unter TOV0 etwas anderes 
vorstellst, als es tatsächlich ist.

TOV0, CS00, ...  das alles sind einfach nur Zahlenwerte, die die 
Bitposition bezeichnen, an denen das jeweilige Bit in einem bestimmten 
Register zu finden ist.
OP
Lesenswert?
• ▲
▼
Komisch daran ist, AVR Studio erkannt "bool" an!
Macht aber nachher ein Fehler aus beim Kompilieren??

Das ist nicht alles wirklich hilfreich!
Hab noch nicht viel Erfahrung, was MC angeht.

Ziel ist es ein Programm zuschreiben:

Timer0 soll hoch zählen Interrupt auslösen und im HP ein Bit toggeln
OP
Lesenswert?
• ▲
▼
Karl Heinz Buchegger schrieb:
> Bernd H. schrieb:
>
>> Wieso erkennt er das Format "bool" nicht?
>
>
> Weil 'bool' im ursprünglichen C nicht enthalten war. Um 'bool' benutzen
> zu können musst du den Header stdbool.h includieren.
>
> Aber das löst dein Problem nicht, dass du dir unter TOV0 etwas anderes
> vorstellst, als es tatsächlich ist.
>
> TOV0, CS00, ...  das alles sind einfach nur Zahlenwerte, die die
> Bitposition bezeichnen, an denen das jeweilige Bit in einem bestimmten
> Register zu finden ist.


Ich lese gerade in http://www.tschallener.net/AVR/timer0.pdf
Hier steht, das TOV0 im Reg TIFR nur ein Flag ist

Kann man den die Bit in den Registern nicht direkt mit ihrem 
Namenansprechen?
Also TOV0 = 1;
Lesenswert?
• ▲
▼
Bernd H. schrieb:

> Ich lese gerade in http://www.tschallener.net/AVR/timer0.pdf
> Hier steht, das TOV0 im Reg TIFR nur ein Flag ist

Das ist ja auch grundsätzlich richtig.

> Kann man den die Bit in den Registern nicht direkt mit ihrem
> Namenansprechen?
> Also TOV0 = 1;

Nein.

Wie setzt du denn ein Portbit an einem Port auf 1?

   PORTB |= ( 1 << PB0 );

Auch PB0 ist so gesehen nur ein Bit in einem Register, nämlich das Bit 0 
im Register PORTB.

AVR-Gcc-Tutorial

Tu dir einen Gefallen und fang dort zu lesen an.
OP
Lesenswert?
• ▲
▼
Karl Heinz Buchegger schrieb:
> Nein.
>
> Wie setzt du denn ein Portbit an einem Port auf 1?
>
>    PORTB |= ( 1 << PB0 );
>
> Auch PB0 ist so gesehen nur ein Bit in einem Register, nämlich das Bit 0
> im Register PORTB.
>
> AVR-Gcc-Tutorial
>
> Tu dir einen Gefallen und fang dort zu lesen an.

Das Tutorial kann ich nicht öffenen

Oh gott, oh gott wie kann man bloß einfache Dinge bloß so komplizieren!
Es gibt keine dirkete Bit adriessung ?
Ist das ein Problem den AVR oder Atmega oder kann der kein C++?

Also PIGS habe ich immer so adressiert
Lesenswert?
• ▲
▼
Bernd H. schrieb:
> Karl Heinz Buchegger schrieb:
>> Nein.
>>
>> Wie setzt du denn ein Portbit an einem Port auf 1?
>>
>>    PORTB |= ( 1 << PB0 );
>>
>> Auch PB0 ist so gesehen nur ein Bit in einem Register, nämlich das Bit 0
>> im Register PORTB.
>>
>> AVR-Gcc-Tutorial
>>
>> Tu dir einen Gefallen und fang dort zu lesen an.
>
> Das Tutorial kann ich nicht öffenen
>

AVR-GCC-Tutorial


> Oh gott, oh gott wie kann man bloß einfache Dinge bloß so komplizieren!
> Es gibt keine dirkete Bit adriessung ?

Gegenfrage: Hast du schon mal C gelernt oder ratest du einfach nur 
drauflos?
Gast
Lesenswert?
• ▲
▼
Auch wenn es von verschiedener Seite bereits, mehr oder weniger 
freundlich, angesprochen wurde: Es lohnt sich mal ins "AVR-GCC-Tutorial" 
zu schauen. Den Eingang findest du hier auf der Homepage.
Bitte verstehe: Die Meisten hier helfen gerne, wenn aber zu viel an 
Grundlagen fehlt, so werden sie leicht unwirsch.
Viele haben das Motto: Helfen: Ja; Tipps geben: Gerne; Lehren: Nein!
OP
Lesenswert?
• ▲
▼
amateur schrieb:
> Auch wenn es von verschiedener Seite bereits, mehr oder weniger
> freundlich, angesprochen wurde: Es lohnt sich mal ins "AVR-GCC-Tutorial"
> zu schauen. Den Eingang findest du hier auf der Homepage.
> Bitte verstehe: Die Meisten hier helfen gerne, wenn aber zu viel an
> Grundlagen fehlt, so werden sie leicht unwirsch.
> Viele haben das Motto: Helfen: Ja; Tipps geben: Gerne; Lehren: Nein!

Nein ist schon ok.
Hab leider dieses Projekt aufs Auge drückt bekommen und Zeit drängt halt 
was :(
hab früher mal PIC in C++ programmiert (vor 10 Jahren+ und es war auch 
nicht viel) und diese wurden halt genau so Bit adressiert. Jetzt ist das 
komplettes Neuland quasi und nichts läuft.... die Synthax ist mir 
vollkommen fremd.

Problem mein kleines Wissen von damals deckt sich wohl mit dem von heute 
nicht. Das macht die Sache noch schwieriger weil ich nochmal komplett 
umdenken muss.

Dachte das wäre das schöne an Compilern, das eben nicht neue Synthax 
lernen müste. Komisch ist das es wieder komplett anders ist.

Ich wälze mal das Tutorial

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.