Sida 1 av 2
Väldigt konstigt fel i mikroBasic.
Postat: 24 oktober 2009, 11:00:22
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.
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?
Re: Väldigt konstigt fel i mikroBasic.
Postat: 24 oktober 2009, 11:14:21
av v-g
Hur är de analoga inställningarna?
Re: Väldigt konstigt fel i mikroBasic.
Postat: 24 oktober 2009, 12:11:01
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.
Re: Väldigt konstigt fel i mikroBasic.
Postat: 24 oktober 2009, 12:20:31
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.
Re: Väldigt konstigt fel i mikroBasic.
Postat: 24 oktober 2009, 13:02:39
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.
Re: Väldigt konstigt fel i mikroBasic.
Postat: 24 oktober 2009, 13:51:20
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.
Re: Väldigt konstigt fel i mikroBasic.
Postat: 24 oktober 2009, 13:59:48
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!
Re: Väldigt konstigt fel i mikroBasic.
Postat: 24 oktober 2009, 14:01:37
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

Re: Väldigt konstigt fel i mikroBasic.
Postat: 24 oktober 2009, 14:03:47
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å...
Re: Väldigt konstigt fel i mikroBasic.
Postat: 24 oktober 2009, 14:04:22
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...
Re: Väldigt konstigt fel i mikroBasic.
Postat: 24 oktober 2009, 14:10:08
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.
Re: Väldigt konstigt fel i mikroBasic.
Postat: 24 oktober 2009, 14:13:15
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.
Re: Väldigt konstigt fel i mikroBasic.
Postat: 24 oktober 2009, 14:36:32
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....
Re: Väldigt konstigt fel i mikroBasic.
Postat: 24 oktober 2009, 15:45:54
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..
Re: Väldigt konstigt fel i mikroBasic.
Postat: 24 oktober 2009, 16:04:53
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" ?