Skulle behöva lite tips för att komma igång.
Jag tänkte använda en fjärrkontroll för att styra min Atmega8. Jag har en IR-mottagre som jag har kopplat på en pinne. Nu kan jag få nånting att hända när det kommer en ljussignal. det fungerar fint. Men jag skulle vilja att olika saker sker beroende på vilken knapp som trycks in.
Jag förstår att det kommer en serie av ettor och nollor, men hur får jag processorn att känna igen de olika kombinationerna?
Jag skriver i C, men har inte hållt på med språket särskilt länge. Har aldrig provat på seriell kommunikation tidigare.
AVR och IR
-
- EF Sponsor
- Inlägg: 2109
- Blev medlem: 27 augusti 2005, 20:57:58
- Ort: Borlänge
Ett tips kan vara att läsa på lite hur IR fungerar http://www.xs4all.nl/~sbp/knowledge/ir/ir.htm
Det finns även några exempel för PIC på denna sida.
Det finns även några exempel för PIC på denna sida.
Du får nog börja med att ta reda på vad din fjärrkontroll använder för protokoll. Är det sonys RC5 eller något annat?
EDIT: Det följande stycket är fruktansvärt korkat och dumt. Läs Application Notes istället.
Om du inte vet protokollet eller bara vill ta reda på det så skriv ett litet program som har en 'klocka', typ använd timer0 och räkna tid med den. Sen kan du spara (kanske skicka med usart till en PC med terminal) tiderna för alla stigande och fallande flanker kanske? På så vis kan du kanske lista ut vad det är för pulståg vid olika knapptryckningar. Med stor sannolikhet är detta en besvärlig och inte särskilt bra metod.
Ett annat tips vore ju att besöka http://www.avrfreaks.net och se till att bli medlem.
Sen finns det förmodligen mycket mer vettig information i Application Note AVR410 och AVR415 här.
EDIT: Är det typ en sån här du har? Det blir jobbigt om du bara har en vanlig fotodiod.
EDIT: Det följande stycket är fruktansvärt korkat och dumt. Läs Application Notes istället.
Om du inte vet protokollet eller bara vill ta reda på det så skriv ett litet program som har en 'klocka', typ använd timer0 och räkna tid med den. Sen kan du spara (kanske skicka med usart till en PC med terminal) tiderna för alla stigande och fallande flanker kanske? På så vis kan du kanske lista ut vad det är för pulståg vid olika knapptryckningar. Med stor sannolikhet är detta en besvärlig och inte särskilt bra metod.
Ett annat tips vore ju att besöka http://www.avrfreaks.net och se till att bli medlem.
Sen finns det förmodligen mycket mer vettig information i Application Note AVR410 och AVR415 här.
EDIT: Är det typ en sån här du har? Det blir jobbigt om du bara har en vanlig fotodiod.
Vad har du för fjärrkontroll?
I natt skrav jag ett program som avkodar JVC-liknande protokoll (Denon's variant) "i bakgrunden", d.v.s. helt interruptstyrt. Det kan jag dela med mig av om du vet att det är detta protokoll.
Annars är RC5 det vanligaste, även om inga av mina fjärrkontroller använder det
Har du tillgång till ett minnesoscilloskop och länken som thepirateboy skrev så är halva ditt problem löst (då kan du lista ut vilket protokoll det liknar mest)!
I natt skrav jag ett program som avkodar JVC-liknande protokoll (Denon's variant) "i bakgrunden", d.v.s. helt interruptstyrt. Det kan jag dela med mig av om du vet att det är detta protokoll.
Annars är RC5 det vanligaste, även om inga av mina fjärrkontroller använder det

Har du tillgång till ett minnesoscilloskop och länken som thepirateboy skrev så är halva ditt problem löst (då kan du lista ut vilket protokoll det liknar mest)!
- Greve Hamilton
- EF Sponsor
- Inlägg: 544
- Blev medlem: 4 september 2004, 15:03:35
- Ort: GBG
C till AVR så klart
Jobbar fortfarande på det stundvis. Den har inga problem med att dra ut rådatan, men den kommer ju den lite tråkigare delen med att matcha detta mot knapptryckningarna!
Använder timer0 och INT0 på en Mega32, men det lär funka på alla Mega och de flesta Tiny också med lite pill i registerna.

Jobbar fortfarande på det stundvis. Den har inga problem med att dra ut rådatan, men den kommer ju den lite tråkigare delen med att matcha detta mot knapptryckningarna!
Använder timer0 och INT0 på en Mega32, men det lär funka på alla Mega och de flesta Tiny också med lite pill i registerna.