Hallo,
Ik ben mezelf aan het verdiepen in het programeren van AVR's. Ik heb als oefenproject gekozen om een ir signaal te kunnen ontvangen en herkennen.
Onze kat heeft een bandje waaraan een ir zendertje hangt en daar mee kan hij het kattenluik openen. Deze code wil ik kunnen herkennen.
Alle hardware is aanwezig, ik gebruik een Athmel stk500 ontwikkelboard en heb een ir ontvanger die ik aan PORTD kan hangen.
Mijn vraag: hoe kan ik, in grote lijnen, het binnenkomende signaal het best verwerken (programmeren).
timmie
niet met me uitspraken(of opmerkingen) eens mail me.K8048 guide
in welke taal en hoe is de opzet van het signaal? dus is er een start/stop bit hoe lang is het signaal van je ir ontvanger(aantal bits)lengte van een high signaal?
[Bericht gewijzigd door timmie op ]
Taal: winAVR ofwel c.
Signaal bestaat uit een trein van 5 pulsen die resp:
0.7, 0.5, 0.5, 0.5, 0.5 mS lang zijn.
De IR ontvanger versterkt alleen het signaal, doet niets aan de-codering.
[Bericht gewijzigd door maxxam op ]
timmie
niet met me uitspraken(of opmerkingen) eens mail me.K8048 guide
als ik je goed begrijp heb je een startbit en dan 4 bits aan signaal.
ik kan je trouwens geen code geven ben geen uitblinker in C maar kan je mssn wel op weg helpen.
Neen, alleen een korte trein van 5 pulsjes.
Eerste puls is 0,7 ms hoog
dan 0,4 ms laag
tweede puls 0,5 ms hoog
dan 0,1 ms laag
derde puls 0,5 ms hoog
dan 0,1 ms laag
vierde puls 0,5 ms hoog
dan 0,1 ms laag
vijfde puls 0,5 ms hoog
dan verder laag..
[Bericht gewijzigd door maxxam op ]
Marcel
AVR C tutorial http://expand.xs4all.nl/avr
Op 23 september 2006 22:53:32 schreef maxxam:
Signaal bestaat uit een trein van 5 pulsen die resp:
0.7, 0.5, 0.5, 0.5, 0.5 mS lang zijn.
Dat is niet volledig, hoe lang is de puls hoog en welke tijd zit er tussen de pulsen?
In principe is het gewoon bij de eerste puls een timer starten. Bij elke flank (opgaand/neergaand) registreer je de verstreken tijd. En uiteindelijk bepaald je of de pulsen binnen de door jou gestelde specificatie vallen.
timmie
niet met me uitspraken(of opmerkingen) eens mail me.K8048 guide
timmie
niet met me uitspraken(of opmerkingen) eens mail me.K8048 guide
Marcel,
Ik denk dat je voorstel inderdaad goed kan werken. Ik had een veel ingewikkeldere methode met interrupts e.d. in gedachte.
Ik ga het proberen, ik laat weten of het lukt.
thanks.
ehh, de meeste AVR's kennen wel de capture interupt pin (ICP dacht ik?). Zit je zeker goed wat betreft timing. Je moet maar eens goed lezen in de datasheet van de door jouw gekozen atmel. De ATMEGA's hebben dit iig.
Dan kun je er nl vrijwel zeker vanuit gaan dat de door jouw opgeslagen tijd beter klopt dan met pollen. interrupts is niet zo'n gek idee dus.