weardguy
http://www.m-voorloop.nl --- Ik? Welnee! Ik zit nog lang niet achter de germaniums.
Titel zegt het al.
Ik heb op een 16F84A naar voedingsspanning een schakelaar (maakcontact uiteraard) aangesloten naar pin 18.
Naar 0 is een weerstand van 1 k geplaatst.
Tot 2 weken geleden werkte het, ik heb de hele schakeling een week laten liggen, en nu reageert hij ineens nergens meer op.
De code is onveranderd gebleven:
trisa EQU 85h
porta EQU 05h
trisb EQU 86h
portb EQU 06h
teller EQU 40h
teller2 EQU 41h
ORG 00h
BSF 03,5
CLRF trisb
BCF 03,5
BLP MOVLW 0x0F
MOVWF portb
CALL delaya
MOVLW 00h
MOVWF portb
CALL delayb
MOVLW 0x0F
MOVWF portb
CALL delaya
MOVLW 00h
MOVWF portb
CALL delayb
MOVLW 0x0F
MOVWF portb
CALL delayb
MOVLW 00h
MOVWF portb
CALL delayb
MOVLW 0x0F
MOVWF portb
CALL delayb
MOVLW 00h
MOVWF portb
CALL delayb
MOVLW 0x0F
MOVWF portb
CALL delayb
MOVLW 00h
MOVWF portb
CALL delayb
MOVLW 0x0F
MOVWF portb
CALL delayb
MOVLW 00h
MOVWF portb
CALL delayb
MOVLW 0x0F
MOVWF portb
CALL delayb
MOVLW 00h
MOVWF portb
CALL delayb
MOVLW 0x0F
MOVWF portb
CALL lang
CALL lang
MOVLW 0x0F0
MOVWF portb
CALL delaya
MOVLW 00h
MOVWF portb
CALL delayb
MOVLW 0x0F0
MOVWF portb
CALL delaya
MOVLW 00h
MOVWF portb
CALL delayb
MOVLW 0x0F0
MOVWF portb
CALL delayb
MOVLW 00h
MOVWF portb
CALL delayb
MOVLW 0x0F0
MOVWF portb
CALL delayb
MOVLW 00h
MOVWF portb
CALL delayb
MOVLW 0x0F0
MOVWF portb
CALL delayb
MOVLW 00h
MOVWF portb
CALL delayb
MOVLW 0x0F0
MOVWF portb
CALL delayb
MOVLW 00h
MOVWF portb
CALL delayb
MOVLW 0x0F0
MOVWF portb
CALL lang
CALL lang
check1 BTFSC 05h, 01h
GOTO rechts
GOTO BLP
rechts MOVLW 0x0F0
MOVWF portb
CAll delay
MOVLW 00h
MOVWF portb
CALl delay2
MOVLW 0x0F0
MOVWF portb
CALL delay
MOVLW 00h
MOVWF portb
CALl delay2
MOVLW 0x0F0
MOVWF portb
CALL delay
MOVLW 00h
MOVWF portb
CALl delay2
MOVLW 0x0F
MOVWF portb
CALL delaya
MOVLW 00h
MOVWF portb
CALL delayb
MOVLW 0x0F
MOVWF portb
CALL delaya
MOVLW 00h
MOVWF portb
CALL delayb
MOVLW 0x0F
MOVWF portb
CALL delayb
MOVLW 00h
MOVWF portb
CALL delayb
MOVLW 0x0F
MOVWF portb
CALL delayb
MOVLW 00h
MOVWF portb
CALL delayb
MOVLW 0x0F
MOVWF portb
CALL delayb
MOVLW 00h
MOVWF portb
CALL delayb
MOVLW 0x0F
MOVWF portb
CALL delayb
MOVLW 00h
MOVWF portb
CALL delayb
MOVLW 0x0F
MOVWF portb
CALL delayb
MOVLW 00h
MOVWF portb
CALL delayb
MOVLW 0x0F
MOVWF portb
CALL lang
CALL lang
check2 BTFSC 05h, 01h
GOTO links
GOTO rechts
links MOVLW 0x0F0
MOVWF portb
CALL delaya
MOVLW 00h
MOVWF portb
CALL delayb
MOVLW 0x0F0
MOVWF portb
CALL delaya
MOVLW 00h
MOVWF portb
CALL delayb
MOVLW 0x0F0
MOVWF portb
CALL delayb
MOVLW 00h
MOVWF portb
CALL delayb
MOVLW 0x0F0
MOVWF portb
CALL delayb
MOVLW 00h
MOVWF portb
CALL delayb
MOVLW 0x0F0
MOVWF portb
CALL delayb
MOVLW 00h
MOVWF portb
CALL delayb
MOVLW 0x0F0
MOVWF portb
CALL delayb
MOVLW 00h
MOVWF portb
CALL delayb
MOVLW 0x0F0
MOVWF portb
CALL delayb
MOVLW 00h
MOVWF portb
CALL delayb
MOVLW 0x0F0
MOVWF portb
CALL lang
CALL lang
MOVLW 0x0F
MOVWF portb
CAll delay
MOVLW 00h
MOVWF portb
CALl delay2
MOVLW 0x0F
MOVWF portb
CALL delay
MOVLW 00h
MOVWF portb
CALl delay2
MOVLW 0x0F
MOVWF portb
CALL delay
MOVLW 00h
MOVWF portb
CALl delay2
BTFSC 05h, 01h
GOTO dxldxr
GOTO links
dxldxr MOVLW 0x0F
MOVWF portb
CAll delay
MOVLW 00h
MOVWF portb
CALl delay2
MOVLW 0x0F
MOVWF portb
CALL delay
MOVLW 00h
MOVWF portb
CALl delay2
MOVLW 0x0F
MOVWF portb
CALL delay
MOVLW 00h
MOVWF portb
CALl delay2
MOVLW 0x0F0
MOVWF portb
CAll delay
MOVLW 00h
MOVWF portb
CALl delay2
MOVLW 0x0F0
MOVWF portb
CALL delay
MOVLW 00h
MOVWF portb
CALl delay2
MOVLW 0x0F0
MOVWF portb
CALL delay
MOVLW 00h
MOVWF portb
CALl delay2
BTFSC 05h, 01h
GOTO BLP
GOTO dxldxr
delay MOVLW 0x082
MOVWF teller2
verder MOVLW 0x082
MOVWF teller
opnieuw DECFSZ teller, 1
GOTO opnieuw
DECFSZ teller2, 1
GOTO verder
RETLW 00h
delay2 MOVLW 0x0FF
MOVWF teller2
verder2 MOVLW 0x0FF
MOVWF teller
opnieuw2 DECFSZ teller, 1
GOTO opnieuw2
DECFSZ teller2, 1
GOTO verder2
RETLW 00h
lang MOVLW 0FFH
MOVWF teller2
verder11 MOVLW 0FFh
MOVWF teller
opnieuw11 DECFSZ teller, 1
GOTO opnieuw11
DECFSZ teller2, 1
GOTO verder11
RETLW 00h
delay3 MOVLW 0xFF
MOVWF teller2
verder3 MOVLW 0xFF
MOVWF teller
opnieuw3 DECFSZ teller, 1
GOTO opnieuw3
DECFSZ teller2, 1
GOTO verder3
RETLW 00h
delaya MOVLW 2A
MOVWF teller2
verder1a MOVLW 2A
MOVWF teller
opnieuw1a DECFSZ teller, 1
GOTO opnieuw1a
DECFSZ teller2, 1
GOTO verder1a
RETLW 00h
delayb MOVLW 55
MOVWF teller2
verder2a MOVLW 55
MOVWF teller
opnieuw2a DECFSZ teller, 1
GOTO opnieuw2a
DECFSZ teller2, 1
GOTO verder2a
RETLW 00h
END
Excuses dat de code (in mijn ogen) een behoorlijke bende is.
In plaats van verder springen naar een ander programma, lichten nu de LED's op die niet aan horen te zijn (wel zwak, maar ze lichten duidelijk op) en gaan de LED's die wel aan horen te zijn zwakker branden.
Ik heb nu al 'alles' geprobeerd, schakelaar naar pin 17 verplaatst, naar de resterende drie andere pinnen op poort a, geen resultaat.
Andere PIC, zelfde testen: geen resultaat.
Inmiddels kan ik wel zeggen dat ik wanhopig ben, en niet meer weet waar het probleem zit.
Je zou bijna gaan denken dat de bitjes eruit gelekt zijn 
Klinkt alsof voeding rare dingen doet. uC is ontkoppeld? Zit ook daadwerkelijk aan Vcc en GND (even met de meter controleren)? Je voeding staat niet te oscilleren? Die pin waar je schakelaar aan hangt is niet als output gedefinieerd (sorry, doe nooit wat met MicroChip, dus ga ook de taal niet leren).
Wow, wat een verhaal zeg. Ik ben niet zo goed in assembler dus ik ga dat niet helemaal doorlezen. Zoals marco al zegt kan het goed liggen aan de voeding. Heb je een 100nF dicht genoeg over de PIC geplaatst?
chipje
Why do people spend money they don't have, to buy things they don't need, to impress people they don't like...? .-.-.-.-. Wie zich gelukkig voelt met het geluk van anderen, bezit een rijkdom zonder grenzen.
weardguy
http://www.m-voorloop.nl --- Ik? Welnee! Ik zit nog lang niet achter de germaniums.
uC is ontkoppeld, snap niet helemaal wat je bedoelt of dat ook echt aan Vcc en massa is, maar eh ja, schakeling nalopen levert echt Vcc en massa op.
En chipje: natuurlijk wordt die met een 10 k weerstandje constant hoog gehouden. 
Begrijp me trouwens niet verkeerd: het programma wat ie uitvoerd is helemaal stabiel, geen rare (vanzelf) verspringers ofzo, waar hij mee start voert ie goed uit, en 2 weken geleden reageerde hij dus nog op een laagpuls hoogpuls via de schakelaar.
Echter een week later reageert hij niet meer.
Over de voeding: het lijkt mij dat de 5 volt van een computer voeding stabiel zat is, en overigens heeft hij op elke voeding hetzelfde probleem, 5 volt vast of niet (regelen op 5 volt dus)
De pin waar de schakelaar aanhangt is niet als output gedefinieerd? (ik heb het liever over in of uitgangen)
Bij een schakelaar moet deze toch als ingang (1ngang) gedefinieerd staan.
Volgens het datablad is poort a bij inschakeling allemaal gedefinieerd als ingang, dus daar zit het niet (zou ook niet verklaren waarom hij het eerst wel deed) (alhoewel ik ook geen verklaring weet waarom hij het nu ineens niet meer doet)
weardguy
http://www.m-voorloop.nl --- Ik? Welnee! Ik zit nog lang niet achter de germaniums.
Ok, het bleek dus helemaal mijn fout te zijn.
Na verwijdering van een teller met een 7 segmentsdisplay had ik ook een massaverbinding onderbroken, waardoor de schakelaar dus alleen aan voedingsspanning verbonden werd, en geen laagtrekking naar massa meer had.
Na herstellen van die verbinding werkt hij weer zoals hoort.
Wil ik iedereen hier toch bedanken voor het meedenken.
