PIC vs AVR, jag har kommit till insikt!

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
bengt-re
EF Sponsor
Inlägg: 4829
Blev medlem: 4 april 2005, 16:18:59
Skype: bengt-re
Ort: Söder om söder
Kontakt:

Inlägg av bengt-re »

Jo, det stämmer att timern i sig hela tider kommer att ha korrekta värden, men om anropet sker på en 2Tcy instruktion så fördröjs det som skall hända vid timerinterupet med en Tcy. I snitt stämmer det exakt, men ger ett gitter på utgången på 1 Tcy som jag inte begriper hur man skall komma ifrån med annat än göra NOP fyllda ballanserade slingor, men kör man en 16F med 20MHz så är gittret bara 200ns, oftast kan man leva med det naturligtvis, men hade problem när jag försökte generera VBS signaler. Där blev gittret synligt tyvärr 0,4% av linjetiden i gitter märks - det fungerade och gick se vad som visades, men det såg oroligt ut.

Jag jagade störningar och for runt med kondensatorer och hade mig innan jag insåg att "felet" inte var hårdvara utan en korkad programerare...

Det problemet löste jag genom att köra packade rutiner på de linjer som det skulle visas bild på och på de helsvarta linjerna låta jittret vara ( så att man fick någon processortid över att räkna under). På helsvarta linjer så syns inte jittret alls.
sodjan
EF Sponsor
Inlägg: 43267
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Om timern fortsätter att gå medans ISR'en väntar på att "startas", så
kanske man skulle kunna se på timern hur lång tid det tog för ISR'en att
starta och justera därefter. Inte genomtänkt alls just nu, bara en tanke... :-)
Användarvisningsbild
BEEP
EF Sponsor
Inlägg: 1593
Blev medlem: 21 januari 2006, 16:57:56
Ort: Mölndal

Inlägg av BEEP »

cpi kan inte jämföra 0 med registerna r0-15
Senast redigerad av BEEP 13 september 2006, 23:54:05, redigerad totalt 2 gånger.
Användarvisningsbild
bengt-re
EF Sponsor
Inlägg: 4829
Blev medlem: 4 april 2005, 16:18:59
Skype: bengt-re
Ort: Söder om söder
Kontakt:

Inlägg av bengt-re »

Aha, jo det borde man ju kunna - timerns värde är ju känt och är värdet +1 så var det en 2Tcy instruktion och det är ju bara at tkompensera för. Att det blir 5Tcy i extra latency spelar ju ingen som helst roll eftersom det är interuptrutinen som själv genererar signalerna. Fan, vad korkat att inte tänka på det.... *suck* Jag är ingen programmerare. Varför tänkte jag inte på det för? Satt i många timmar och strulade och försökte komma på en lösning.... Man blir hemmablind antar jag....
Skriv svar