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.
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.
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.
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.
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..