Någon som gjort manchester decoder i C?

Elektronik- och mekanikrelaterad mjukvara/litteratur. (T.ex schema-CAD, simulering, böcker, manualer mm. OS-problem hör inte hit!)
StRob
Inlägg: 167
Blev medlem: 15 maj 2007, 09:30:47
Ort: Karlstad

Någon som gjort manchester decoder i C?

Inlägg av StRob »

Jag ska göra manchesteravkodning i en PIC16F870 och har ingen aning om hur jag ska gå tillväga. Jak ska skriva det i C iaf. Ska man använda incapturefunktionen? Det är lite besvärligt då jag använder timer1 till annat så går det att lösa på andra sätt så är det ju bra. Kan avvara den men det ställer till lite bekymmer. man kan inte använda uarten va? nån som har gjort det och kan komma med lite tips? Borde ju finnas kodexempel på nätet men har inte lyckats hitta nåt.
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Inlägg av vfr »

Vilka bithastigheter rör det sig om?

Vad är det för signal innan manchesterkodning och efter avkodning?
StRob
Inlägg: 167
Blev medlem: 15 maj 2007, 09:30:47
Ort: Karlstad

Inlägg av StRob »

Det är ut från en radiomottagare som det kommer manchesterkodad data på 9600 8N1.
Innan är det RS232 till en PIC som gör om det till manchesterkodning och skickar in det i en radiosändare.
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Inlägg av vfr »

Ska du använda UART:en så får du nog ha en extern Manchesterdekoder och det var väl inte avsikten. Annars är det nog enklast med en timer som har inputcapture. Det kan gå att göra med den lilla 8-bitars timern också men det blir rätt bökigt att få till koden och du har ingen capture-funktion.
StRob
Inlägg: 167
Blev medlem: 15 maj 2007, 09:30:47
Ort: Karlstad

Inlägg av StRob »

Nej jag anade att det var så.. Men det finns ju nåt "händelsebaserat avbrott" på portB om jag inte minns fel.. Får kika på det..
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Inlägg av vfr »

Japp. Det finns både "interrupt on change" på port B och ett specifikt "externt" avbrott på RB0. Någon av dessa kan mycket väl användas ihop med lilla timern. Förutsättningen för att det ska fungera bra utan inputcapture och med 8-bitars timer, är att du korta avbrottsrutiner på andra saker (låg latency på detta avbrottet) och en lämplig prescaler på timern.
StRob
Inlägg: 167
Blev medlem: 15 maj 2007, 09:30:47
Ort: Karlstad

Inlägg av StRob »

Jo det är sant.. Men det är ju 9600 vilket betyder 1ms per tecken och med manchesterkodning borde det bli 1ms per två bitar ( en etta = 01 tänker jag, galet?) det borde den väl hinna med även med lite marginal..
Skriv svar