Tre olika insignaler med CCP

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Tre olika insignaler med CCP

Inlägg av ankan »

Om jag har tre olika insignaler och vill veta pulslängden på dem. Måste jag då använda en PIC med 3st CCP eller kan jag tex använda mig av CCP-porten för alla 3 och sedan checka av vilken av insignalen som flaggar genom att låta dem sitta på ett varsit ben och kolla vilka förändringar som har gjorts sedan förra flaggningen?
Användarvisningsbild
strombom
Inlägg: 3305
Blev medlem: 27 maj 2003, 10:50:20
Ort: Västra Götaland
Kontakt:

Inlägg av strombom »

Om de inte kommer samtidigt låter ju det som en bra idé!
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Inlägg av ankan »

Känns som att man skulle lika gärna kunna använda interupen på RB portarna och sedan bara kolla klockan varje gång.. Capture funktionen behöver man väll inte trigga igentligen?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Min/max längden på pulserna ?
Tiden mellan två pulser ?

Utan att veta detaljerna ovan, så verkar 3 st IOC pinnar enklast.
Användarvisningsbild
Icecap
Inlägg: 26650
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Det beror ju på upplösningen och hur noga du vill ha tiden.
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Inlägg av ankan »

ungefär:
1,7 ms
2,3 ms
4,3 ms
6 ms
4st var det förresten...
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Och de kommer helt oberoende av varandra ?

Finns det "risk" att två flanker på två olika "linjer"
kan komma med väldigt kort intervall.
T.ex "ettan går hög" och sedan 100 ns senare, "tvåan går hög" ?

Eller hur ser den totala bilden ut ?

Med lite tanke bakom hur man läser IOC interruptet, så
antar jag att det ska gå att hantera, men att ha hela bilden
underlättar...
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Inlägg av ankan »

Vad är IOC?

Risken finns nog eftersom signalerna inte är synkade med varandra utan de kommer och går. Capture verkar nästan lite onödigt när jag tänker efter. Man kan lika gärna köra RB-interup och kopiera timerns värde. Eller har jag missat något?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

IOC = Interrupt On Change.

> Man kan lika gärna köra RB-interup och kopiera timerns värde. Eller har jag missat något?

Nja, med den "vanliga" interrupt ingången måste du välja vilken
flank som skall ge interrupt, IOC ger interrupt på båda.

Notera bara att medan du hanterar en "change" på en pinne, så kan
du få ett "change" på en annan, så du måste antagligen fundera lite
extra på hur pinnarnas läge kollas. Det finns (i alla fall med IOC på
vissa modeller) en liten risk att man missar en flank om den inträffar
under en viss tidpunkt i samband med att porten läses (d.v.s gör
en reset en "change-condition"). Jag minns inte vilka modeller det var,
men det fanns/finns en varning i delen som handar om IOC.
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Inlägg av ankan »

Känns som att IOC är bättre att satsa på än CCP.
Kan ju kopiera timerns värde bara. Dock kan de bli lite knepigt när timern har gått runt.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Kan ju kopiera timerns värde bara.

Ja, en gång vid (t.ex) upp-flank och en gång vid ner-flank och sedan
bara räkna intervallet därimellan. Det blir två olika räkneoperationer
beroende på om räknaren har "slagit runt" (timer overflow) under
tiden mellan flankerna.

Enklast vore om det fanns en tidpunkt där timern kan
nollställas, men det kanske är svårt eftersom alla pulserna
kommer helt oberoende av varandra !?

Förresten, en viktig sak, vilken upplösning behöver du i mätningen ?
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Inlägg av ankan »

Bara så att jag kan urskilja periodlängderna jag skrev tidigare.

1,7 ms
2,3 ms
4,3 ms
6 ms
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Jo :-)

Men, med vilken *** upplösning *** ?
+/- 0,1 ms ?
+/- 0,01 ms ?
+/- 1 us ?

Eller vänta !!!

Menar du att du *VET* att du enbart får pulser med just de längderna ?

Om det är så, så är det ju en helt annan sak !
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Inlägg av ankan »

Det är bara de längderna jag är intresserad av och borde komma in.
Användarvisningsbild
Icecap
Inlägg: 26650
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Men det säger fortfarande inget om upplösningen.

T.ex. 1,7ms.
Är det OK med 1,69ms?
1,71ms?

osv......

Eller: 1,7ms ±HUR MYCKET?
Skriv svar