Forum: Mikrocontroller und Digitale Elektronik reset input0, was bedeutet reset?


von roboterheld (Gast)


Lesenswert?

was wird bei einem reset beim interrupt veranlasst?

Interrupt Int0(), Save 2
   Encoder_li = Encoder_li + 1
   Reset Int0
End Interrupt

muss nach verlassen einer int-routine wiede mit enable der int 
eingeschaltet werden ?

mfg

von Hannes L. (hannes)


Lesenswert?

Muttu gucken bei www.bascom-forum.de

...

von jack (Gast)


Lesenswert?

Reset ist für die Bitmanipulation bestimmt: setze Bit auf 0

Aber das sollte alles in der Bascom Hilfe erklärt werden.

von roboterheld (Gast)


Lesenswert?

ich meine nicht von der bascom-seite her , sondern von der technischen 
seite im atmega.

von Karl H. (kbuchegg)


Lesenswert?

Welche technische Seite?

Reset setzt ein Bit auf 0. Nicht mehr und nicht weniger.
Mehr gibt es über Reset nicht zu sagen. Und wenn doch,
dann steht das sicherlich in der Bascom Hilfe drinnen.

Wenn die Frage lautet: Ist dieser Reset überhaupt notwendig,
da das ganze doch in der Int0 Interrupt Routine stattfindet
und der Interrupt doch sowieso durch das Betreten des
Interrupt Handlers erfolgt, dann hast du zwar recht. Allerdings
mag sich der Autor der Zeilen durchaus etwas dabei gedacht haben,
dass er am Ende der ISR das Int0 Interrupt Bit nochmal löscht.
(Oder auch nicht, wer weis das schon). Denk mal drüber nach, was
passieren soll, wenn während der ISR Abarbeitung ein weiterer
Int0 auftritt.

> muss nach verlassen einer int-routine wiede mit
> enable der int eingeschaltet werden ?

Gegenfrage: musstest du den int ausschalten?
Warum sollst du ihn daher wieder einschalten muessen.

von Hannes L. (hannes)


Lesenswert?

> Gegenfrage: musstest du den int ausschalten?
> Warum sollst du ihn daher wieder einschalten muessen.

Weil die meisten BASCOM-Benutzer BASCOM benutzen, weil sie keine Lust 
haben, sich mit der Hardware (Architektur) und Logik 
auseinanderzusetzen, da sie irgendwo gehört/gelesen haben, dass es mit 
BASCOM kinderleicht sei, AVRs zu programmieren...

Unter "Reset" verstehe ich das Zurücksetzen des Programms und das 
Initialisieren der Hardware.

Zum Löschen von Bits bietet der AVR einige Maschinenbefehle an, die in 
Assembler Namen wie CBR, CBI, AND (mit invert. Wert), ANDI (mit inv. 
Wert) haben. Der AVR kann nur Masxchinencode, der nur in ASM 1 zu 1 
notiert werden kann. Was Hochsprachen für Klimmzüge machen, um diese 
Maschinenbefehle zu umschreiben (ASM vermeiden), steht auf einem ganz 
anderen Blatt. Das meiste davon ist nicht nötig, da Hochsprachen auch 
mit logischen Verknüpfungen (AND, OR, EXOR, NOT) umgehen können. Um Bits 
zu löschen, reicht es (in jeder brauchbaren Prog.-Sprache) aus, das 
entsprechende Byte mit einer Maske, in der die gewünschten Bits 0 sind, 
AND zu verknüpfen.

BASCOM geht meiner Meinung nach zu weit, es bietet vielen unnützen Krams 
an (Config, ...), der den "Programmmierer" von seiner eigentlichen 
Aufgabe (z.B. mal ins Datenblatt des AVRs zu schaun) abhält.

...

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.