Hjälp med kod 16F84 (nybörjare)

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
exile
EF Sponsor
Inlägg: 496
Blev medlem: 21 oktober 2005, 23:32:07

Inlägg av exile »

sodjan:
Visst genererar den "vilken" delay som helst, men om du modiferar den kan du få varabel delay som tar en 24bitars variabel in och den är multipler av 7 cykler, det var det jag menade, delvis att den kan ändras i runtime. Visst borde jag skrivet det men jag trode att ni var tanke läsare :wink:

Icecap:
Håller med dej om att label gör koden mer lätt läst, dock finns det tillfällen när helt befogat som exemple makron men det är en annan fema :)
Användarvisningsbild
Chribbe76
EF Sponsor
Inlägg: 1167
Blev medlem: 17 januari 2004, 22:43:17
Ort: Stockholm

Inlägg av Chribbe76 »

Den här delayen fungerar på samma sätt men är lite snyggare pga endast ett goto och inga $.
Kommer ej ihåg om jag skrivit den själv.

Kod: Markera allt

DelayLoop:
	decf	Delay1
	btfsc	STATUS,2
	decf	Delay2
	btfsc	STATUS,2
	decfsz	Delay3
	goto	DelayLoop
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

excile> Håller med dej om att label gör koden mer lätt läst, dock finns det
excile> tillfällen när helt befogat som exemple makron men det är en annan fema

Kolla upp "LOCAL" i MPASM manualen.

Icecap> Då jag förstår på sodjan att delayet inte blir exakt i med annat än 7 cycles...

Alltså, hela saken är den att *kodgeneratorn* kan ge en delay med valfritt
antal hela cykler, dock kommer den faktiska koden att se lite olika ut
från fall till fall.

Betrakta delayrutinen som en "black box" där det inte är så himla
viktigt hur koden ser ut, bara den gör det den ska.

Den som gillar mer "smart" kod, kan testa de andra kodgeneratorerna
för t.ex multiplikation och division... :-)
Nino
Inlägg: 5
Blev medlem: 15 april 2006, 14:40:11

Inlägg av Nino »

Påminner lite om när jag satt och programmerade motorola 68HC12.
Skriv svar