Seriellt med pic i asm

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Virror
Inlägg: 1025
Blev medlem: 28 april 2004, 11:03:14
Ort: Göteborg
Kontakt:

Seriellt med pic i asm

Inlägg av Virror »

Har programerat éndel asm med pic 16f84, men hur tar man hand om seriell data? Skulle någon kanske skriva ett kort exempel som lägger in seriell data i ett register?
Användarvisningsbild
Hedis
Inlägg: 2493
Blev medlem: 8 december 2003, 15:10:44
Ort: Vänersborg
Kontakt:

Inlägg av Hedis »

Du lägger in talet precis oms vilket tal som hellst i ett register (som du sedan kanske kopierar till "ut-registret" som den kommer att skicka ifrån.

Enda skillnaden är att den skickar bit för bit istället för hela byten på en 8-bitars bred "buss".

Så vill du skicka $ff så skriver du 0b1111 1111 i registret.

Nu har jag inte använt uartén på en pic, men på en AVR så kollar man sedan ett register för att se om uart:en är redo att sända, man skyfflar in talet i registret, skriver "skicka" biten o vipps så matar den iväg det hela.
cyr
Inlägg: 2712
Blev medlem: 27 maj 2003, 16:02:39
Ort: linköping
Kontakt:

Inlägg av cyr »

I F84 finns det ingen UART/USART.

Klart enklast är att byta till en F627 eller något liknande, som har USART. Annars får man göra det i mjukvara (bit bang).

Mjukvaruversionen blir något i den här stilen (ta emot från PORTB0 till register data):

rrf data ; Shifta register ett steg
bcf data,7 ; 0 i bit 7
btfsc PORTB,0 ; kolla insignalen
bsf data,7 ; 1 i bit 7 om porten var 1

Upprepas för varje databit, genom någon loop eller timer-interrupt. Dessutom måste det till startbit-detection och lite annat vilket krånglar till en del.

Ganska mycket jobb och inte värt det när det finns så billiga chip med inbyggd USART.
Virror
Inlägg: 1025
Blev medlem: 28 april 2004, 11:03:14
Ort: Göteborg
Kontakt:

Inlägg av Virror »

ok, tacka så mycket, anledningen till att jag ville använda en 16f84 är att jag har en liggandes hemma.
Skriv svar