PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : und wieder Anfänger



barmal
18.07.2005, 13:57
Hallo liebe Lötgemeinde,
ich komme gleich zur Sache und hoffe auf eine Antwort.
Ich würde gerne eine Pause direkt nach dem Einschalten des Prozessors anlegen, ca. 2Sekunden soll sie lang sein und nur beim Einschalten soll sie durchlaufen. Dabei soll der WDT aktiv sein!
Wie kann ich es im Assembler realisieren...???
Es ist ein PIC 16F876 mit 20Mhz

Mehto
18.07.2005, 16:33
Tag,

lass ihn doch einfach register ruterzählen.

In etwa so:



ldi r16, 255
ldi r17, 255
ldi r18, 255
ldi r19, 255


loop:

dec r16
brne loop

dec r17
brne loop

dec r18
brne loop

dec r19
brne loop


Die Werte musst du aber noch genau anpassen.
Was hast du denn vor?


P.s.: Ich kenn mich leider nur mit Avr aus, kann sein das das mit einen PiC nicht klappt.

18.07.2005, 16:46
Hi,
also das passt nicht sooo ganz.
Die Schleife habe ich schon direkt nach dem Resetvektor aber...
nach jedem WDT läuft sie natürlich durch,,,das ist mein Problem!
Deswegen sollte sie nur einmal beim Start durchlaufen und adios, mehr nicht.
Ich bin an einem BLDC Motor und bis jetzt hat er Kontrolle über mich, nicht andersrum...

Mehto
18.07.2005, 17:05
Dann nimm doch zb. r10 als Status Register.

Beim ersten durchgehen der Schleife überprüfe z.b. bit 7.
wenn gesetzt ohne schleife weiter, wenn gelöscht schlefe durchlaufen und anschlie0en bit 7 auf highsetzen.

Falls bei einem WDT auch die Register gelöscht werden wirst du wohl einen Byte aus dem EEProm benutzen müssen.