hallo
ik ben een robot aan het bouwen aangestuurt door een pic 16f877A. hiermee stuur ik een l298N ic aan die mijn 2 aandrijfmotortjes stuurt.
hier mijn kort programmatje
'Poorten
TRISA = 0x00 'alle A poorten als output zetten
TRISB = 0x00 'alle B poorten als output zetten
TRISC = 0x00 'alle C poorten als output zetten
TRISD = 0x00 'alle D poorten als output zetten
TRISE = 0x00 'alle E poorten als output zetten
'Inputs 'naam toewijzen aan alle ingangen
'outputs 'naam toewijzen aan alle uitgangen
Symbol input1 = PORTD.0
Symbol input2 = PORTD.1
Symbol enablea = PORTD.2
Symbol input3 = PORTD.3
Symbol input4 = PORTD.4
Symbol enableb = PORTD.5
'voor de duidelijkheid dit zijn de inputs en enabels van de L298n ic en dus outputs van de pic
main:
Gosub test
Goto main
End
test:
input1 = 1
input2 = 0
enablea = 1
input3 = 1
input4 = 0
enableb = 1
WaitMs 300
enablea = 0
enableb = 0
WaitMs 10
input1 = 0
input2 = 1
enablea = 1
input3 = 0
input4 = 1
enableb = 1
WaitMs 2000
enablea = 0
enableb = 0
WaitMs 10
Return
mijn probleem is nu dat mijn pic helemaal nix doet.
Bij het uit testen en meten, wou ik eens aan de pin van het kristal meten.
Bij het aanraken van deze pin begonden plots de motortjes te draaien.
Bij het geven van een mclr signaal stopten deze en daarna deed hij weer niks ...
Telkens ik die pin van het kristal aanraak doet hij dat.
Aan het kristal hangen 2 22pF condensatoren die elk naar massa gaan.
Kan iemand mij helpen met deze bizarre fout
Jochem
If you want to succeed, double your failure rate.
Geef eens een schema en een foto van het opgebouwde geheel.
Voeding ontkoppeld met een C'tje vlak aan de PIC?
Pull-up aan MCLR?
Juiste capaciteiten voor het gekozen kristal?
En probeer eerst eens een blink-a-led.
[Bericht gewijzigd door Jochem op (22%)]
@jochem
pull up weerstand bij mclr is gebruikt
een schema zal ik maken en later posten. de voeding is correct alles word gevoet via batrij van 12V dan het standaard schakelingetje 1 condensator 220uF 1 100nF 7805 220uF 100nF vlak aan de voeding van de ic 100nF de condensator waarde voor christal is zeker juist heb die bij andere projekten al gebruikt 20Mhz 22pF condensatoren.
@ jowi
config statement is niet nodig ik werk met basic en heb de juiste microcontroller ingesteld
bij het programeren van de pic verloopt ook alles vlot hij geeft geen erors ook bij het compilen niet wat ik ook raar vind is als de motoren draaien ze niet veranderen van draaizin zoals zou moeten volgens programma het is alsof de pic blijft vast zitten
schema volgt later
Jochem
If you want to succeed, double your failure rate.
Op 18 juni 2009 10:35:44 schreef jensdc:
@ jowi
config statement is niet nodig ik werk met basic en heb de juiste microcontroller ingesteld
Ook HSOSC ingesteld?
Blink-a-led?
ik heb nu difine clock_frequency20 toegevoegd aan begin van prog en het programma voor 1 pin aan en uit ingevoerd:
main:
Gosub test
Goto main
End
test:
portA.1=1
waitms 3000
portA.1=0
Return
echter heb ik weer juist hetzelfde probleem er gebeurt nix
als ik de pin van het christal aanraak met eender welk metalen voorwerp gaat portA.1 hoog worden maar wordt niet meer laag tot mclr...
Ik weet niet welke basic compiler je gebruikt, maar diegene die ik ken hebben allemal een regel als :
CONFIG INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFFDit is voor PICBasic en de interne oscillator.
Maar elke PIC kent minimaal 4 oscillator configuraties en je moet wel opgeven welke je gebruikt.
ik gebruik ook de picbasic maar bij andere al werkende projecten heb ik dat nooit gebruikt maar zal het eens proberen
edit: ik heb de regel ingegeven zoals jij hier typt en bij het compilen geeft hij daarop een syntax fout + enkel het woord config word blauw
[Bericht gewijzigd door jensdc op (38%)]
Dat komt omdat de 16F877 geen INTRC_OSC_NOCLOCKOUT kent. Ik gaf een voorbeeld, de juiste instelling voor jouw situatie moet je zelf opzoeken. (Of het juiste bedrag op mijn bankrekening over maken, dan wil ik het wel opzoeken
)
ik weet nog altijd niet wat er fout liep mss is het ene verkeer pic het is een 16f877A I/P ik heb hetzelfde programma in een 18f4431 I/P gestoken en hier lukt alles perfekt
Jochem
If you want to succeed, double your failure rate.
Misschien 'toevallig' dat de config nu wel goed is. Als de weinig met de gegeven tips doet maar gaat lopen gissen kom je d'r kennelijk soms ook. Je weet echter niet wat er nu precies fout ging, misschien loop je er later weer tegenaan.
[Bericht gewijzigd door Jochem op (26%)]
ik probeer de tips heus wel uit hoor maar als de config bij juist dezelfde pic niet nodig was in een ander projectje dan is deze hier ook niet nodig hoor maar tog heb ik het geprobeert zonder resultaat ik denk dat de pic stuk is bedankt voor de hulp allesins en ik ben niet zo leeg dat ik geld ga storten voor hulp hoor
Op 19 juni 2009 08:30:13 schreef jensdc:
ik probeer de tips heus wel uit hoor maar als de config bij juist dezelfde pic niet nodig was in een ander projectje dan is deze hier ook niet nodig hoor maar tog heb ik het geprobeert zonder resultaat ik denk dat de pic stuk is bedankt voor de hulp allesins en ik ben niet zo leeg dat ik geld ga storten voor hulp hoor
Het is toCH en geprobeerd (en alleszins, maar dat zal een typfout zijn)
Jochem
If you want to succeed, double your failure rate.
Op 19 juni 2009 08:30:13 schreef jensdc:
ik probeer de tips heus wel uit hoor
Tja, als je dat niet terugmeldt weet niemand dat. Wat heb je uiteindelijk gedaan om de config voor de 877 op HS-kristal te zetten?
jorim23
Murphy's Law: Anything you try to fix will take longer and cost more than you think.
Misschien dat ik er wel helemaal naast zit, maar in jou progje schrijf je:
TRISC = 0x00 'alle C poorten als output zetten Op portc zitten ook je kristal aansluitingen. Het lijkt mij dat die niet als output moeten fungeren toch?
En het helpt misschien ook om dit in je programmatje te zetten:
CONFIG WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
Xtal 20 'configuratie voor een 20mHz kristalOp 19 juni 2009 08:38:28 schreef CaptainObvious:
[...]
Het is toCH en geprobeerd (en alleszins, maar dat zal een typfout zijn)
ja srr ik ben niet goed in schrijven
Op 19 juni 2009 08:47:28 schreef Jochem:
[...]Tja, als je dat niet terugmeldt weet niemand dat. Wat heb je uiteindelijk gedaan om de config voor de 877 op HS-kristal te zetten?
heb niet meer verder geprobeert met de 16f maar er kan nix verkeerd zijn met het prog of kristol of iets dergelijk want heb alles hetzelfde gelaten gewoon ander ic namelijk de 18F
Op 19 juni 2009 11:58:52 schreef jorim23:
Misschien dat ik er wel helemaal naast zit, maar in jou progje schrijf je:TRISC = 0x00 'alle C poorten als output zettenOp portc zitten ook je kristal aansluitingen. Het lijkt mij dat die niet als output moeten fungeren toch?
En het helpt misschien ook om dit in je programmatje te zetten:
CONFIG WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF Xtal 20 'configuratie voor een 20mHz kristal
ik zal de code later eens uitproberen want alles werkt perfekt nu met lcdtje enzo erbij .
en voor dat ander zit je er idd naast port c bevat 8 pinen C.0-> c.8 in de datacheet kan je zien dat het kristal moet verbonden worden met osc1 en osc2 deze beveinden zich juist boven poort c.0 toch bedankt iedereen voor mij mag het topic gesloten worden want het werkt