Interrupt AVR Amteg32

#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:
#2819743
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.
#2819794
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
#2819855
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;
#2819868
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.
#2819912
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
#2819970
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 #2819993
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!
#2820030
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

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