PIC-assember Nybörjarproblem med BSF/BCF [LÖST]

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7486
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Re: PIC-assember Nybörjarproblem med bsf/bcf

Inlägg av Marta »

Det är en workaround, inte en lösning. Skall Du använda någon pinne som ingång där det även finns en analog funktion så måste denna stängas av, annars kommer pinnen alltid att läsas som nolla.
Användarvisningsbild
nablaman
Inlägg: 480
Blev medlem: 30 juli 2010, 17:43:07
Ort: Lund
Kontakt:

Re: PIC-assember Nybörjarproblem med bsf/bcf

Inlägg av nablaman »

Det är sant. Kommer använda A och B-porten som ingångar, så låter som att jag får kolla på detta också. Tillbax till databladet... :)
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7486
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Re: PIC-assember Nybörjarproblem med bsf/bcf

Inlägg av Marta »

I databladet finns små gråa rutor med viktig information och just detta står i den gråa rutan för PORTE. Det finns även en sammanfattning av vilka register som på något sätt berör porten, eller den modul avsnittet nu handlar om, i slutet av varje avsnitt. Detta är en av de saker som är mycket hjälpsamt och bra i databladen från Microchip.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: PIC-assember Nybörjarproblem med bsf/bcf

Inlägg av sodjan »

> Jag pillar med en PIC16F877...

Inte en 877A ? De är lite vanligare. Spelar dock sannolikt ingen roll i just detta fall.

I kapitlet för PORTE finns det flera ledtrådar som alla pekar på ditt problem:
Also, ensure that ADCON1 is configured for digital I/O. In this mode, the input buffers are TTL.
...
PORTE pins are multiplexed with analog inputs. When selected for analog input, these pins will read as ‘0’s.
...
Note: On a Power-on Reset, these pins are configured as analog inputs and read as ‘0’.
vilket ju dels är väldigt tydligt och också pekar direkt på din "nybörjartabbe".
Gör om och gör rätt så fungerar det som du förväntar dig...

Det som kan förklara att man kanske inte ser detta direkt, är att man nog inte
upplever BCF/BSF som instruktioner som *läser* från porten, de ska ju bara
skriva till en bit. Men de instruktionerna *läser* alltså först *hela* porten, ändrar
en bit och skriver sedan tillbaka *hela* porten igen. Där uppstår "felet"...
Användarvisningsbild
nablaman
Inlägg: 480
Blev medlem: 30 juli 2010, 17:43:07
Ort: Lund
Kontakt:

Re: PIC-assember Nybörjarproblem med bsf/bcf **LÖST*

Inlägg av nablaman »

Anledningen till att det blev en 877 var att jag hade ett helt rör liggande med såna, och det verkade vara en trevlig PIC med en massa I/O, vilket jag behövde :)

Förstår hur bcf/bsf fungerar nu när jag studerat det mer i detalj, och tar till mig det ni säger om den multiplexade analogporten. Mycket lärorikt. Tack till alla! :)
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: PIC-assember Nybörjarproblem med bsf/bcf **LÖST**

Inlägg av sodjan »

Ja, rent generellt gäller att *alla* pinnar som även har en analog
funktion *alltid* är analog efter reset. Gäller alla PIC jag har tittat på.

Orsaken till det är lätt att förstå, man vill inte att en analog källa (som
ju per definition kan ha vilken spänning som helst inom gränserna) inte
ska driva en digital ingång direkt, eftersom digitala ingångar ibland inte
fungerar speciellt bra när man ligger i gråzonen mellan "låg" och "hög".
Det kan uppstå onormala strömförbrukningar m.m.

> och det verkade vara en trevlig PIC med en massa I/O, vilket jag behövde

Absolut, det är historiskt en av de vanligaste modellerna, tillsammans med
877A vilken ganska snabbt ersatte den första 877'an.

*Idag* ger en 887 bättre funktionallitet till halva priset. Man får en
hel den moderna finesser som en bättre internt oscillator m.m.
Användarvisningsbild
nablaman
Inlägg: 480
Blev medlem: 30 juli 2010, 17:43:07
Ort: Lund
Kontakt:

Re: PIC-assember Nybörjarproblem med bsf/bcf **LÖST**

Inlägg av nablaman »

Nu har jag gjort klart mitt första PIC-projekt! Gick ju kanon när man fått bort alla analoga ingångar o liknande :)
En liten film: (även postad i min Zusie-tråd)
Skriv svar