Programmeringsmysterium PIC18F442

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
nanopile
Inlägg: 312
Blev medlem: 9 april 2006, 17:06:50
Ort: Stockholm

Programmeringsmysterium PIC18F442

Inlägg av nanopile »

Tar med hela koden för säkerhets skull:

Raden mellan mellanrumen som ska flasha pinne 2 på PortA fungerar som om det stod bsf istället för btg.
Har mätt med oscilloskopet och pinnen blir hög men aldrig låg trots tusentals passager som verifieras med räknare som exporteras via seriekabeln till datorn.

Så frågan är, hur kan detta komma sig?
Byter jag ut PortA mot PortB så fungerar koden som den ska men inte som PortA

LowPriorityInterupt
Global LowPriorityInterupt
MOVWF W_TEMP ; W_TEMP is in virtual bank
MOVFF STATUS, STATUS_TEMP ; STATUS_TEMP located anywhere
MOVFF BSR, BSR_TEMP ; BSR located anywhere
Call IncPassingPointCounter4

btg PortA, 2

btfsc INTCON, TMR0IF
Call Timer0Overflowed
btfsc PIR1, RCIF
Call PutRecievedByteOnReceptionStack
Call IncPassingPointCounter4
MOVFF BSR_TEMP, BSR ; Restore BSR
MOVF W_TEMP, W ; Restore WREG
MOVFF STATUS_TEMP,STATUS ; Restore STATUS
Return
goto $
bearing
Inlägg: 11677
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Inlägg av bearing »

Det betyder antagligen att den läser 0 från RA2 varje gång, som då ändras till 1. Har du stängt av den analoga funktionen? Är pinnen utgång?

Om ändrar till BTG LATA, 2 istället funkar det det förmodligen som du tänkt förutsatt att den är utgång.
nanopile
Inlägg: 312
Blev medlem: 9 april 2006, 17:06:50
Ort: Stockholm

Inlägg av nanopile »

Analoga funktionen låter som en rimlig förklaring.
En utgång är det, allt utom RC7 är utgång och eftersom den dessutom blir hög så mäste det väl vara en utgång?

Står:
bcf ADCON, 0.
Enligt databladet betyder det att A/D convertern inte ens konsumerar ström i det läget.
Men antagligen är väl då inte det allt antar jag eftersom något blir fel?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Detta är ju så jäkla tydligt angivet i databladet!

RTFM.

Specielt "EXAMPLE 9-1: INITIALIZING PORTA"

Har du överhuvudtaget läst kapitel 9.1 om PORTA ??
Skriv svar