Postat: 24 oktober 2004, 15:58:11
>> [ALV]
Om du ska läsa av en läsgaffel på det sättet är det effektivaste (och säkraste?) sättet att använda sig av hårdvarubaserade fuktioner i PICen. Dessa tar tid att förstå sig på. Jag har själv kodad PIC mer eller mindre nu i över ett år och håller själv på att försöka förstå dessa fuktioner.
I ditt fall finns det en funktion i CCP-modulen som heter capture som fixar vad du behöver. Probelemt är att du måste konfigurera det själv via register, det finns inget Basic-kommando eller liknande för att använda den. Nästa problem är att du behöver en snabb interrupt-rutin, och detta går inte heller att fixa i Basic! Men om du väl får igång det så görs det nästan helt i bakgrunden, och du kan ha ett huvudprogram som exekveras samtidigt!
Det andra sättet är att dedicera en PIC att bara undersöka, s.k. polla, sensorn med extremt korta mellanrum för att se om det hänt något och isåfall utföra vad som behövs. Men då är ju problemet att den inte kan göra mycket annat än att just holla konstant koll på sensorn.
Gällande mitt projekt så använde jag IR-sensorer för att bedöma "avståndet" till saker. Räckvidden är begränsad till några decimeter i bästa fall, men ibland fungerar de inte alls om grejen som är ivägen reflekterar IR-ljus väldigt lite. Avståndsbedömningen är också begränsad till två-tre zoner.
Om du vill sparka igång hårdvaru-PWM på en pic och kodar i basic så startade jag själv en tråd omd etta för ett halvår sedan (typ..). Dock stöder inte exempelvis PIC16F84A denna funktion, utan det är bara de PICar med CCP-modul som man kan tillämpa hårdvaru-PWM på.
Om du ska läsa av en läsgaffel på det sättet är det effektivaste (och säkraste?) sättet att använda sig av hårdvarubaserade fuktioner i PICen. Dessa tar tid att förstå sig på. Jag har själv kodad PIC mer eller mindre nu i över ett år och håller själv på att försöka förstå dessa fuktioner.
I ditt fall finns det en funktion i CCP-modulen som heter capture som fixar vad du behöver. Probelemt är att du måste konfigurera det själv via register, det finns inget Basic-kommando eller liknande för att använda den. Nästa problem är att du behöver en snabb interrupt-rutin, och detta går inte heller att fixa i Basic! Men om du väl får igång det så görs det nästan helt i bakgrunden, och du kan ha ett huvudprogram som exekveras samtidigt!
Det andra sättet är att dedicera en PIC att bara undersöka, s.k. polla, sensorn med extremt korta mellanrum för att se om det hänt något och isåfall utföra vad som behövs. Men då är ju problemet att den inte kan göra mycket annat än att just holla konstant koll på sensorn.
Gällande mitt projekt så använde jag IR-sensorer för att bedöma "avståndet" till saker. Räckvidden är begränsad till några decimeter i bästa fall, men ibland fungerar de inte alls om grejen som är ivägen reflekterar IR-ljus väldigt lite. Avståndsbedömningen är också begränsad till två-tre zoner.
Om du vill sparka igång hårdvaru-PWM på en pic och kodar i basic så startade jag själv en tråd omd etta för ett halvår sedan (typ..). Dock stöder inte exempelvis PIC16F84A denna funktion, utan det är bara de PICar med CCP-modul som man kan tillämpa hårdvaru-PWM på.