Hi,
Bin leider bei dieser Aufgabe an diesen Pic gebunden.
Nun gut...
Ich habe jetzt das TMR0 Register mit d'102' beschrieben!
Startet danach der Timer im nächsten Zyklus wenn ich ihn auf
"Transition on Internal instruction cycle clock" konfiguriert habe??
Er wartet noch 2 Takte, und beginnt dann mit dem Zählen. Bei 4Mhz dauert ein Schritt 1µs, bei 8Mhz 0.5µs.
Was steht im timer wenn er hochgzählt hat ?? Zählt er weiter oder hält er an ??
Im Modus "Transition on Internal instruction cycle clock" wird bei jedem Takt (also mit jedem abgearbeiteten Befehl) der Timer um 1 erhöht. Da der Timer 8Bit breit ist geht er von 0 bis 255. Ist 255 erreicht, springt er auf 0 zurück. Andere PICs können hier einen Interrupt generieren oder ein Flag setzen, die 10Fxxx bieten aufgrund des Purismus diese Möglichkeit nicht.
Muss man den Timer extra starten ??
Nein, der Timer läuft immer. Du kannst ihn weder starten noch anhalten. Das geht bei anderen PIC's, aber auch nicht bei allen.
Für deine 5Sekunden würde ich das MSB regelmäßig prüfen und wenn es gesetzt ist, eine Variable hochzählen, um auf die gewünschte Dauer zu kommen. In der Zwischenzeit kann der PIC noch rund 120 Befehle abarbeiten, damit solltest du die vorhandenen Rescourcen sinnvoll nutzen können.
Gruß
Stefan