Hantera rs232 "kommandon" i pic

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Hantera rs232 "kommandon" i pic

Inlägg av sodjan »

Om du lägger bufferten i UDATA_SHR så spelar inte IRP någon roll.
Normalt har man inte plats där (i SHR) för en hel buffert... :-)

> Jag använder ju UDATA_SHR och den fyller ju antagligen upp Bank0 först...

SHR är inte kopplat till någon bank alls. Den ligger över alla 4.

Och nej, den byter inte från UDATA_SHR automatiskt, då får ett felmedelande
från MPLINK när UDATRA_SHR är "full" så att säga...
Användarvisningsbild
Bosen
Inlägg: 1753
Blev medlem: 18 juli 2005, 10:56:31
Ort: Karl Gustav, Varberg
Kontakt:

Re: Hantera rs232 "kommandon" i pic

Inlägg av Bosen »

Jo felmeddelandet har jag fått när jag exprimenterade en hel del....
Men om jag lägger buffern i t.ex UDATA_OVR hur vet jag då vilken bank det hamnar?
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Hantera rs232 "kommandon" i pic

Inlägg av Icecap »

Är det viktigt?
Kör en "banksel Buffer"
Klart!
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Hantera rs232 "kommandon" i pic

Inlägg av sodjan »

Som Icecap säger, man behöver sällan *veta* vilken bank det hamnar i, det
finns sätt att skriva koden så att det bli helt transparent. Antingen genom att
ha saker i UDATA_SHR (då igen bank hantering behövs alls) eller genom att
lägga till kod som sätter rellevanta saker (t.ex RP0/RP1 för vanliga instruktioner
eller IRP för hantering via INDF). UDATA_OVR är lite speciell, se till att du
har läst på om den om du vil använda den. Annars kör du bara med UDATA
så allokeras det ur den bank där det för tillfället finnd plats.
Användarvisningsbild
Bosen
Inlägg: 1753
Blev medlem: 18 juli 2005, 10:56:31
Ort: Karl Gustav, Varberg
Kontakt:

Re: Hantera rs232 "kommandon" i pic

Inlägg av Bosen »

...som jag har fattat så ersätter banksel alltid RP0/RP1. Men det ersätter alltså IRP också?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Hantera rs232 "kommandon" i pic

Inlägg av sodjan »

Nej, BANKSEL sätter RP0/RP1, men jag tror inte att den även sätter IRP.
Det får man kolla på annat sätt, genom att kolla om symbolen "buffer"
ligger i bank 0/1, bank 2/3.
Användarvisningsbild
Bosen
Inlägg: 1753
Blev medlem: 18 juli 2005, 10:56:31
Ort: Karl Gustav, Varberg
Kontakt:

Re: Hantera rs232 "kommandon" i pic

Inlägg av Bosen »

hmm... dum fråga som inte sodjan kommer att svara på :D men:
Hur kollar man det då?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Hantera rs232 "kommandon" i pic

Inlägg av sodjan »

Sannolikt (alltså otestat) något i stil med :

Kod: Markera allt

   if buffer > h'FF'
      bsf   STATUS, IRP
   else
      bcf   STATUS, IRP
   endif
Du får testa själv...
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Hantera rs232 "kommandon" i pic

Inlägg av Icecap »

eller

Kod: Markera allt

if high Buffer
  bsf STATUS, IRP
else
    bcf   STATUS, IRP
 endif
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Hantera rs232 "kommandon" i pic

Inlägg av sodjan »

OK, Icecap's exempel fungerar säkert också, men det bygger på att
man "vet" att ett värde > 0 = "true"... :-)

Alltså att om buffer > h'FF' så blir "high buffer" = h'01' vilket är logiskt "true".
Skriv svar