G_SHOCK
tja...
Ik heb een programma geschreven alleen doet deze het heel raar,
alles is voor de rest goed ingesteld dan laat ik het programma het volgende doen.
ADdata equ 20h
Dout equ 1
Sclk equ 0
Teller equ 21h
Teller2 equ 22h
org 00h
bsf Status,5
movlw 60h
movwf Osccon
movlw 00h
movwf Ansel
movlw 00h
movwf Trisa
movlw 00h
movwf Trisb
bcf Status,5
include<PIC16F88.inc>
include<ASCII.inc>
Start movlw 0FFh
call Sendda
Goto Start
Sendda movwf ADdata
bcf Porta,Dout ;clear
bsf Porta,Sclk ;Set high
btfsc ADdata,7
bsf Porta,Dout
call Clockdalo
call Clockdahi
bcf Porta,Dout
call Delay1
call Delay1
btfsc ADdata,6
bsf Porta,Dout
call Clockdalo
call Clockdahi
bcf Porta,Dout
call Delay1
call Delay1
btfsc ADdata,5
bsf Porta,Dout
call Clockdalo
call Clockdahi
bcf Porta,Dout
call Delay1
call Delay1
btfsc ADdata,4
bsf Porta,Dout
call Clockdalo
call Clockdahi
bcf Porta,Dout
call Delay1
call Delay1
btfsc ADdata,3
bsf Porta,Dout
call Clockdalo
call Clockdahi
bcf Porta,Dout
call Delay1
call Delay1
btfsc ADdata,2
bsf Porta,Dout
call Clockdalo
call Clockdahi
bcf Porta,Dout
call Delay1
call Delay1
btfsc ADdata,1
bsf Porta,Dout
call Clockdalo
call Clockdahi
bcf Porta,Dout
call Delay1
call Delay1
btfsc ADdata,0
bsf Porta,Dout
call Clockdalo
call Clockdahi
bcf Porta,Dout
call Delay1
call Delay1
Return
Clockdalo bcf Porta,Sclk
Call Delay1
Return
Clockdahi bsf Porta,Sclk
Call Delay1
Return
Delay1 MOVLW 01h ;1 cycle
MOVWF Teller2 ;1 cycle
D1 MOVLW 0FFh ;1 cycle
MOVWF Teller ;1 cycle
D2 DECFSZ Teller, 1 ;1 cycle
GOTO D2 ;2 cycles
DECFSZ Teller2, 1
GOTO D1
Return
end
nu werkt het Clockdahi en Clockdalo gedeelte wel maar bij Dout krijg ik hele kleine piekjes die veel korter zijn dan
Clockda-hi/lo
Weet iemand hoe dit komt??
[Bericht gewijzigd door G_SHOCK op ]
Wat gebeurt er bij de routine 'Clockdahi' en bij 'Clockdalo' ?
Wordt daar ook nog iets met Porta gedaan ?
G_SHOCK
tja...
Op 27 september 2006 20:39:04 schreef MMSoft:
Wat gebeurt er bij de routine 'Clockdahi' en bij 'Clockdalo' ?
Wordt daar ook nog iets met Porta gedaan ?
ja daar gebeurt dit :
Clockdahi
bsf Porta,Sclk
call Delay1
Clockdalo
bcf Porta,Sclk
Call Delay1
Willie Worteltje
Er zijn 10 soorten mensen. Mensen die binair begrijpen en mensen die het niet begrijpen... http://home.versatel.nl/edithenwilliam/william.htm
LET OP:
ASM is case sensitive.
Ik zie staan Porta en PortA.
Dit is niet hetzelfde.
Verder nog:
Een call moet altijd worden afgesloten met een return.
Deze zie ik niet zien bij Clockdahi/Clockdalo.
En staat de return wel in Delay1?
Hint: alles met kleine letters(lowercase) schrijven.
G_SHOCK
tja...
Op 27 september 2006 20:50:14 schreef Willie Worteltje:
LET OP:ASM is case sensitive.
Ik zie staan Porta en PortA.
Dit is niet hetzelfde.Verder nog:
Een call moet altijd worden afgesloten met een return.
Deze zie ik niet zien bij Clockdahi/Clockdalo.En staat de return wel in Delay1?
Hint: alles met kleine letters(lowercase) schrijven.
sorry, tik het net allemaal uit me hoofd.
heb de code zelf net verandert om te kijken of het werkt op een andere manier, maar werkt nog niet.
alle hoofdletters en kleine letters zijn goed en overal ook Return na een subroutine.
Willie Worteltje
Er zijn 10 soorten mensen. Mensen die binair begrijpen en mensen die het niet begrijpen... http://home.versatel.nl/edithenwilliam/william.htm
G_SHOCK
tja...
Op 27 september 2006 20:55:39 schreef Willie Worteltje:
Dan de code maar plaatsen ....
oke zie startpost
raar, als ik:
bcf Porta,Sclk
bsf Porta,Sclk
weg haal dan doet het andere gedeelte het wel(Dout), maar mijn clock doet het natuurlijk niet meer(Sclk)?
mag ik niet Porta 2x gebruiken??
[Bericht gewijzigd door G_SHOCK op ]
Willie Worteltje
Er zijn 10 soorten mensen. Mensen die binair begrijpen en mensen die het niet begrijpen... http://home.versatel.nl/edithenwilliam/william.htm
Ik zie het niet.
Maar wat doet de debugger in MPLAB?
Doet ie het daar wel goed?
En code kan wat korter.
Clockdalo en Clockdahi samen voegen
En je kan ook nog een aparte Delay2 maken.
G_SHOCK
tja...
WW. ja had hem eerst nog veel kleiner maar hij werkt de hele tijd niet dus ik d8 nou dan maar zo makkelijk mogelijk.
Maar je mag blijkbaar niet bsf PortA,Dout en bsf PortA,Sclk tegelijk gebruiken?
Dout = 1
Sclk = 0
MPLAB zegt dat alles goed is maar mijn picje niet 
oke als ik de SCLK op me Portb zet dan werkt het geheel wel, kan iemand mij uitleggen waarom het dan wel werkt?
ik wil het graag op Porta namelijk, maar als het niet anders kan dan moet het maar zo.
[Bericht gewijzigd door G_SHOCK op ]
Maar je mag blijkbaar niet bsf PortA,Dout en bsf PortA,Sclk tegelijk gebruiken?
Dout = 1
Sclk = 0
Dat is geen probleem.
Welke PIC gebruik je ?
[Bericht gewijzigd door MMSoft op ]
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.
Op 27 september 2006 21:22:34 schreef G_SHOCK:
WW. ja had hem eerst nog veel kleiner maar hij werkt de hele tijd niet dus ik d8 nou dan maar zo makkelijk mogelijk.Maar je mag blijkbaar niet bsf PortA,Dout en bsf PortA,Sclk tegelijk gebruiken?
Dout = 1
Sclk = 0MPLAB zegt dat alles goed is maar mijn picje niet
oke als ik de SCLK op me Portb zet dan werkt het geheel wel, kan iemand mij uitleggen waarom het dan wel werkt?
ik wil het graag op Porta namelijk, maar als het niet anders kan dan moet het maar zo.
Op welke pinnen is porta.Sclk en porta.Dout?
Porta.5 is input-only
En porta.0 tm porta.3 zijn standaard analoog. Eerst veranderen naar digitaal.
G_SHOCK
tja...
Op 27 september 2006 21:54:55 schreef chipje:
[...]Op welke pinnen is porta.Sclk en porta.Dout?
Porta.5 is input-only
En porta.0 tm porta.3 zijn standaard analoog. Eerst veranderen naar digitaal.
in de ANSEL neem ik aan dan dat je bedoelt.
Ik heb een soortgelijk probleem ook met enkele picjes gehad.
Sommige PICjes pikken het niet als je achter elkaar bsf en/of
bcf instructies zet. De oplossing was bij mij de beide instructies vervangen door een movlw b'........' instructie, gevolgd door movwf PORTA.
Het probleem heeft volgens mij te maken met de inwendige opbouw met de poort-latches.
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.
Willie Worteltje
Er zijn 10 soorten mensen. Mensen die binair begrijpen en mensen die het niet begrijpen... http://home.versatel.nl/edithenwilliam/william.htm
Op 27 september 2006 22:05:51 schreef chipje:
Zet eens je complete asm code neer. Ook alles wat voor 'start' staat.
Dat bedoelde ik ook al!
Op 27 september 2006 22:05:46 schreef Zonnepaneeltje:
Ik heb een soortgelijk probleem ook met enkele picjes gehad.
Sommige PICjes pikken het niet als je achter elkaar bsf en/of bcf instructies zet.
Dat probleem ken ik niet, wel geeft het problemen als je een of meerdere uitgangen te zwaar belast.
G_SHOCK
tja...
de hele code staat er.
Als ik alle poorten naar Portb verzet werkt het wel netjes op portb-0 en Portb-1.
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.
Code klopt. Moet gewoon kunnen werken.
Maar ik heb het zelf ook een keer mee gemaakt met een 16f84 die de porta.0 niet wilde aansturen terwijl de code goed was. Heb toen zelf niet de moeite genomen om het uit te zoeken, maar de functie naar poorta.2 'verplaatst'. Die had ik nog vrij.
Je zou een andere pic kunnen proberen, maar dat lost de eigelijke probleem natuurlijk niet op. Heb je die uitgangen belast? en waarmee?
G_SHOCK
tja...
Op 27 september 2006 22:28:29 schreef chipje:
Code klopt. Moet gewoon kunnen werken.
Maar ik heb het zelf ook een keer mee gemaakt met een 16f84 die de porta.0 niet wilde aansturen terwijl de code goed was. Heb toen zelf niet de moeite genomen om het uit te zoeken, maar de functie naar poorta.2 'verplaatst'. Die had ik nog vrij.
Je zou een andere pic kunnen proberen, maar dat lost de eigelijke probleem natuurlijk niet op. Heb je die uitgangen belast? en waarmee?
een probe 
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.
Op 27 september 2006 22:29:09 schreef G_SHOCK:
[...]
een probe
Leg ze eens met 1Kohm aan massa.
Ik denk sat dit toch een Read Modify Write fout is.
Deze ontstaan bij BSF/BCF instructies(zie datasheet)
G_SHOCK
tja...
Op 27 september 2006 22:54:04 schreef The Headhunter:
Ik denk sat dit toch een Read Modify Write fout is.
Deze ontstaan bij BSF/BCF instructies(zie datasheet)
en hoe haal ik die er uit, misschien met een delay na de eerste Read modify write? zal het vandaag is verder uitzoeken.
Turbokeu
Golden Member
I love watching conspiracy theorists use the airtight logic of the argument from incredulity: "Well I don't understand how it works so it can't be real!!!"