Väldigt konstigt fel i mikroBasic.

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
netrunner
Inlägg: 5510
Blev medlem: 4 februari 2005, 12:26:05
Ort: 127.0.0.1

Väldigt konstigt fel i mikroBasic.

Inlägg av netrunner »

Jag har köpt en 4-siffrors 7-segments skylt: http://www.sureelectronics.net/goods.php?id=134

Man styr den genom att skicka in data seriellt, med en "klocka" (porta.1) och en "data" (porta.2) och "om skylten ska vara på" (porta3) .

Jag använder en PIC 16F877A med 20MHz kristall och "mikroBasic PRO" senaste versionen (tidigare versioner verkar inte gå att tanka hem).

Jag har skrivit en mycket enkel test kod bara för att se att jag kan skicka data till displayen, den funkar inte. :humm:

Denna kod funkar inte porta.2 på. Den är alltid 0.

Kod: Markera allt

main:
  trisa = 0x00

  porta.1 = %1  'Klocka
  porta.2 = %1  'Data
  porta.3 = %1  'Skylt på
  
  While TRUE
    porta.2 = %1  'Data sätts till 1
    porta.1 = %0
    delay_ms(2)   'Klock puls
    porta.1 = %1
    delay_ms(500)

    porta.2 = %0  'Data sätts till 0
    porta.1 = %0
    delay_ms(2)   'Klock puls
    porta.1 = %1
    delay_ms(500)
  wend
end.
Denna kod funkar porta.2 den växlar som den ska mellan 1 och 0.

Kod: Markera allt

main:
  trisa = 0x00

  porta.1 = %1  'Klocka
  porta.2 = %1  'Data
  porta.3 = %1  'Skylt på
  
  While TRUE
    porta.2 = %1  'Data sätts till 1
    delay_ms(500)

    porta.2 = %0  'Data sätts till 0
    delay_ms(500)
  wend
end.
Nu har jag provat att byta till en ny 16F877A och det är samma sak!

Vad kan det vara för fel?
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Re: Väldigt konstigt fel i mikroBasic.

Inlägg av v-g »

Hur är de analoga inställningarna?
bos
Inlägg: 2314
Blev medlem: 24 februari 2007, 23:29:15
Kontakt:

Re: Väldigt konstigt fel i mikroBasic.

Inlägg av bos »

De analoga inställningarna kvittar eftersom TRISA är 0 (digitala utgångar implicerar att all analogt inläsning är avstängt). Däremot säger databladet att RA2 är multiplexad med VRef, och om CVROE (bit 6 i CVRCON-registret) är satt så blir RA2 en utgång från VRef-modulen. Min gissning är att denna är satt.

Lösning är att nollställa CVRCON helt och hållet, då stängs både VRef av samt VRef-utgången kopplas loss helt från RA2.
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Re: Väldigt konstigt fel i mikroBasic.

Inlägg av v-g »

Om jag inte läser fel så nollas ADCON1 PCFG3:PCFG0 vid reset. Vad de gör står i databladet.

Nu vet jag inte om Basic pillrar i dessa register automatiskt för att man ställer TRISx registren.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Väldigt konstigt fel i mikroBasic.

Inlägg av sodjan »

> De analoga inställningarna kvittar...

Skitsnack.

> ...digitala utgångar implicerar att all analogt inläsning är avstängt

Oklart ver du har fått det ifrån.

> Vad kan det vara för fel?

Slarv. Läs på om PORTA, gör om, gör rätt.
Återkom sedan så får vi se hur det går.
Användarvisningsbild
Glenn
Inlägg: 36772
Blev medlem: 24 februari 2006, 12:01:56
Ort: Norr om Sthlm
Kontakt:

Re: Väldigt konstigt fel i mikroBasic.

Inlägg av Glenn »

Denna tråd innehåller ju en del förklaringar för en annan basicvariant..

http://www.picbasic.co.uk/forum/showthread.php?t=11100

..Den innehåller dessutom "alldigital", en include som helt enkelt känner av vilken pic det är,
och stänger av allt analogt på rätt sätt :) ..lär väl inte funka i mikrobasic dock.
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Väldigt konstigt fel i mikroBasic.

Inlägg av Icecap »

Problemet är med stor säkerhet inte programmerinsspråk-beroende men RTFM-beroende, läs alltså på om de analoga funktioner SOM JU ÄR PÅ EFTER RESET!
Användarvisningsbild
Glenn
Inlägg: 36772
Blev medlem: 24 februari 2006, 12:01:56
Ort: Norr om Sthlm
Kontakt:

Re: Väldigt konstigt fel i mikroBasic.

Inlägg av Glenn »

Nä, men includen som löser det hela utan att man behöver läsa manualen är programmeringsspråksberoende..

..Eller ja, löser och löser, det förutsätter ju att man inte behöver några analoga funktioner, isåfall måste man
ju läsa databladet iaf :)
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Väldigt konstigt fel i mikroBasic.

Inlägg av Icecap »

Du menar på fullt allvar att du litar på vad någon annan har skrivit åt dig istället för att faktisk _veta_ vad som sker?

Ja ja, var och en har sitt eget sätt att klanta sig på...
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Väldigt konstigt fel i mikroBasic.

Inlägg av sodjan »

Att bara använda verktyg utan att förstå vad de gör eller hur
de fungerar bäddar för problem. Men detta är ju väldigt "basic" prylar
för en PIC, inget problem alls. Bara att göra som databladet säger
och stänga av de analoga prylarna...
Användarvisningsbild
Glenn
Inlägg: 36772
Blev medlem: 24 februari 2006, 12:01:56
Ort: Norr om Sthlm
Kontakt:

Re: Väldigt konstigt fel i mikroBasic.

Inlägg av Glenn »

Icecap skrev:Du menar på fullt allvar att du litar på vad någon annan har skrivit åt dig istället för att faktisk _veta_ vad som sker?
Nu vet jag ìofs i detta fallet precis vem som skrivit den där, och jag litar på Darrel ja.

Fast ska man se det så skulle jag ju inte lita på någon mjukvara alls ? eller iaf inga includes ? läser du igenom källkoden
till operativsystemet du kör också ?

Jag vet vad den includen är tänkt att göra, och jag vet att Darrel har bra koll på vad han sysslar med. Jag vet också att många
andra använder den helt utan problem.

Däremot använder jag den sällan själv, men det beror mest på att jag redan vet hur jag ska stänga av analogfunktioner på dom
picarna jag använder (och kan köra copy´n´paste), och väldigt ofta använder jag dessutom analoga funktioner och då är det
enklare att definera upp allt direkt i källkoden.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Väldigt konstigt fel i mikroBasic.

Inlägg av sodjan »

Ja, om/när man vet vad "includen" gör, så är det ju inga problem.
I detta fall var det ju netrunner som inte riktigt vet vad han gör... :-)

Men hur som helst, det är varken något konstigt eller komplicerat som
ska göras, och det är som sagt väldigt "basic" för en PIC.
H.O
Inlägg: 5919
Blev medlem: 19 mars 2007, 10:11:27
Ort: Ronneby

Re: Väldigt konstigt fel i mikroBasic.

Inlägg av H.O »

Min första tanke var också att de analoga funktionerna inte var avstängda men enligt det första inlägget i tråden så fungerar ju det andra exemplet, trots att det inte heller stänger av några analoga funktioner - det är lite märkligt tycker jag - stämmer det? Kanske är det RMW-problem?

Bara inte detta också blir en hata BASIC tråd nu....
Användarvisningsbild
Glenn
Inlägg: 36772
Blev medlem: 24 februari 2006, 12:01:56
Ort: Norr om Sthlm
Kontakt:

Re: Väldigt konstigt fel i mikroBasic.

Inlägg av Glenn »

sodjan skrev: Men hur som helst, det är varken något konstigt eller komplicerat som
ska göras, och det är som sagt väldigt "basic" för en PIC.
..Om inte annat måste man ÄNDÅ plöja datablad när man ska använda nåt analogt, så det är väl egentligen lika bra att
titta där från början.

..Även om jag inte är speciellt förtjust i att microchip har så många olika sätt på olika PIC'ar..
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Väldigt konstigt fel i mikroBasic.

Inlägg av sodjan »

> ...så fungerar ju det andra exemplet,

Ja, helt naturligt eftersom det där bara är en pinne som hanteras.

> Kanske är det RMW-problem?

Ja det är det. Om man kollar de två exemplen i första inlägget
så är det ju uppenbart. I första fallet hanteras flera pinnar på PORTA
och då uppstår detta fenomen. Alla andra pinnar (som har analoga
funktioner "på") nollas när en pinne sätts.

> Bara inte detta också blir en hata BASIC tråd nu....

Finns ingen anledning till det. Detta har igentligen inte något med
BASIC att göra. Det enda kopplingen är att BASIC ofta körs av nybörjare
och detta är ett nybörjarfel, men det är inte BASIC's fel...

> Även om jag inte är speciellt förtjust i att microchip har så många olika sätt på olika PIC'ar..

Vad för "olika sätt" ?
Skriv svar