Hallo,
Ik heb een volgend programmaatje geschreven om een soort primitieve ADC te maken met een LDR, een condensator van 100nF en een RGB led:
zie nieuwe code onderAllemaal heel leuk, en het werkt ook redelijk. Alleen als ik de ldr in het licht zet wordt de kleur netjes groen, en in het donkder/schemer blauw, maar maak ik hem dan nog donkerder dan gaat hij gewoon weer terug naar groen. De rode kleur krijg ik er helemaal nooitr uitgetoverd. Alleen als ik net de voedingssopanning aanluit heb je een hele korte rode flits, en dan springt hij weer over naar groen/blauw. De groene led zit op B7, blauw op B6, en rood op B5.
Wie weet waar het probleem zit?
[Bericht gewijzigd door Bernd op ]
Atlantis
ciao 4 now.....
Ik ken de assembler van de PIC's niet echt (ST man hier) maar in je listing heb je overal GOTO's na elkaar staan. Bij die tweede GOTO komt het programma dus nooit aan. Zoals onder het label 'jaja'
GOTO rgb4
GOTO rgb5
Het programma gaat dus naar rgb4 en daarna naar het label begin volgens het programma..
[Bericht gewijzigd door Atlantis op ]
nee dat klopt wel... als je het commando BTFSC hebt en hij merkt (de pic) dat het bit in dat register 0 is dan zal hij naar het tweede label gaan.
k.p.meinesz
Een schizofreen is nooit alleen!
vermoedelijk zit het hem in de bsf/bcf functie
gebruik deze op een adres en schrijf dit adres weg naar de poort dus bcf/bsf niet rechstreeks een uitgang laten verranderen
ok, ik zal het eens proberen, maar ik doe het al die tijd dat ik programmeer al zo en het heeft nog nooit problemen opgeleverd. Het lijtk mij waarschijnlijker dat het probleem toch in de meting zelf.
ok, ik heb nu de wijzigingen van kpm doorgevoerd, plus nog een foutje dat erin zat weggewerkt, maar het resultaat is exact hetzelfde. Bij een lage weerstandswaarde van de ldr is de kleur goen, iest hoger dan wordt hij blauw, en nog hoger wordt hij weer groen. En hij blijft groen tot Rldr gaat naar oneindig. Ik kan geen fout in de software meer ontdekken. Kwordt er een beetje moe van 
deze is al weer oud ;) [Bericht gewijzigd door Bernd op ]
k.p.meinesz
Een schizofreen is nooit alleen!
Op 1 mei 2003 16:44:43 schreef Bernd:
Ik word hier zo moe van
als ik het goed lees:
je kijkt steeds op het moment dat pin x 1 word naar trm0
en gebruikt deze waarde echter.... trm0 kan een overflow krijgen
zolang trm0 geen overflow situaltie krijgt gaat het goed maar als trm0 een overflow heeft en deze zie je niet dus geeft je prog groen licht
zet de trm0 prescaler eens op maximaal mischien werkt dat
of gebruik een kleinere c
[Bericht gewijzigd door k.p.meinesz op ]
ik heb het geprobeerd met een condensator van 22 nF en ik heb ook het programma wat aangepast. Nu weekt hij beter, dat wil zeggen, maakt andere fouten. Hij kent nu drie toestanden. Blauw, rood, en wit (r,b,g) de andere slaat hij op de een of ander manier over. Het gekke is dat hij eenmaal van blauw naar rood, niet meer blauw kan wordenm, alleen nog maar wit. Eenmaal wit blijft hij dat ook. Dus op de een of andere manier vergeet hij een register ofzo te clearen. Maar TMR0 wordt zeker weten gecleared!
trisa EQU 85h
trisb EQU 86h
timer11 EQU 20h
timer22 EQU 21h
time EQU 40h
TMR0 EQU 01h
INTCON EQU 0Bh
OPTION_REG EQU 81h
hulp1 EQU 41h
hulp2 EQU 42h
hulp3 EQU 43h
hulp4 EQU 44h
hulp5 EQU 45h
porta EQU 05h
portb EQU 06h
ORG 00h
begin CLRF INTCON
CLRF time
BSF 03,5
MOVLW b'11111111'
MOVWF trisa
MOVLW b'00001111'
MOVWF trisb
MOVLW b'11010101'
MOVWF OPTION_REG
BCF 03,5
GOTO main
setout BSF 03,5
MOVLW b'11101111'
MOVWF trisa
BCF 03,5
RETURN
setin BSF 03,5
MOVLW b'11111111'
MOVWF trisa
BCF 03,5
RETURN
main CALL setout
MOVLW b'00000000'
MOVWF porta
MOVLW 012h
MOVWF timer22
labelb MOVLW 0FFh
MOVWF timer11
labela DECFSZ timer11,1
GOTO labela
DECFSZ timer22,1
GOTO labelb
CALL setin
NOP
MOVLW 00h
MOVWF TMR0
BCF INTCON,2
msure BTFSS porta,4
GOTO msure
MOVF TMR0,w
MOVWF time
GOTO pre1
pre1 MOVLW 033h
MOVWF hulp1
timer1 DECFSZ hulp1,1
GOTO aa
GOTO pre2
aa DECFSZ time,1
GOTO timer1
GOTO jaja
pre2 MOVLW 033h
MOVWF hulp2
timer2 DECFSZ hulp2,1
GOTO ab
GOTO pre3
ab DECFSZ time,1
GOTO timer2
GOTO jaja
pre3 MOVLW 033h
MOVWF hulp3
timer3 DECFSZ hulp3,1
GOTO ac
GOTO pre4
ac DECFSZ time,1
GOTO timer3
GOTO jaja
pre4 MOVLW 033h
MOVWF hulp4
timer4 DECFSZ hulp4,1
GOTO ad
GOTO pre5
ad DECFSZ time,1
GOTO timer4
GOTO jaja
pre5 MOVLW 033h
MOVWF hulp5
timer5 DECFSZ hulp5,1
GOTO ae
GOTO jaja
ae DECFSZ time,1
GOTO timer5
GOTO jaja
jaja BTFSC hulp1,7
GOTO rgb1
BTFSC hulp2,7
GOTO rgb2
BTFSC hulp3,7
GOTO rgb3
BTFSC hulp4,7
GOTO rgb4
GOTO rgb5
rgb1 MOVLW 00h
MOVWF portb
MOVLW b'10000000'
MOVWF portb
GOTO begin
rgb2 MOVLW 00h
MOVWF portb
MOVLW b'01000000'
MOVWF portb
GOTO begin
rgb3 MOVLW 00h
MOVWF portb
MOVLW b'00100000'
MOVWF portb
GOTO begin
rgb4 MOVLW 00h
MOVWF portb
MOVLW b'11000000'
MOVWF portb
GOTO begin
rgb5 MOVLW 00h
MOVWF portb
MOVLW b'11100000'
MOVWF portb
GOTO begin
END
[Bericht gewijzigd door Bernd op ]
