Sida 1 av 1

Någon som gjort manchester decoder i C?

Postat: 22 maj 2007, 09:18:57
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.

Postat: 22 maj 2007, 10:27:46
av vfr
Vilka bithastigheter rör det sig om?

Vad är det för signal innan manchesterkodning och efter avkodning?

Postat: 22 maj 2007, 10:37:49
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.

Postat: 22 maj 2007, 11:05:57
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.

Postat: 22 maj 2007, 11:09:32
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..

Postat: 22 maj 2007, 11:14:42
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.

Postat: 22 maj 2007, 11:20:41
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..