Beste mede co'ers,
Allereerst wil ik even zeggen dat dit mijn eerste topic is op CO, maar ik lees al een aardige tijd mee en probeer daar ook van te leren. Ik heb een tijdje geprogrammeerd in picBASIC en probeer nu te programmeren in C met SourceBoost. Nu probeer ik een ledje te laten knipperen maar dat lukt helaas niet, ik hoop dat iemand/meerder mensen mij kan/kunnen helpen.
Bij voorbaat dank,
Reflexz
En dan hier de code:
#include <system.h>
#include <PIC16F737.h>
#pragma DATA _CONFIG1, _CP_OFF & _CCP2_RC1 & _DEBUG_OFF & _VBOR_2_0 & BOREN_1 & _MCLR_OFF & _PWRTE_OFF & _WDT_OFF & _INTRC_IO
void main()
{
TRISA = 0x00; // Alle poorten op output zetten
TRISB = 0x00;
while(1)
{
PORTA = 0x00; // Alle outputs op 0 zetten
PORTB = 0x00;
delay_ms(1000); // Wacht 1 seconden
PORTA = 0xff; // Alle outputs op 1 zetten
PORTB = 0xff;
delay_ms(1000);
}
}Ken zelf sourceboost en dit juiste type pic niet, maar een truukje dat ik wel vaker gebruik om de config settings te checken bij interne osc is de setting te gebruiken waarbij je op RB6 de clock kan nameten. Zo kan je toch al nagaan of de pic effectief loopt.
Bedankt voor je antwoord maar ik weet niet hoe ik dit kan controleren aangezien in geen scoop heb. Heeft er iemand anders misschien een voorbeeldje van een werkend script voor de pic16f737? Bij de link ook een paar onscherpe fotos van hoe het nu op me breadbord zit misschien is daar wel iets niet goed de draden zijn van de wisp648.
http://www.magwel.nl/co/1.jpg
http://www.magwel.nl/co/2.jpg
[Bericht gewijzigd door Reflexz op (38%)]
Jammer dat niemand mij kan helpen, misschien kan iemand mij een ander voorbeeld geven in C met deze pic bijvoorbeeld in mplab of zeg het maar.
Probeer het programma eens zo simpel mogelijk te maken. Bijvoorbeeld enkel PORTA hoog maken, zonder delay.
Check je fuse settings nog en je includes kloppen die? Misschien moet je nog wat met LVP fuse doen? Zal je de sheet moeten bekijken.
Of probeer eens een hex file in je PIC te stoppen waarvan je weet dat hij werkt (ergens downloaden) met een simpel programma erin. Dan kan je wellicht ook zien of je PIC werkt, aangezien je geen scope hebt.
Heb je de voedingsspanning op de PIC zelf al gemeten of die aanwezig is? De ontkoppelC ook zo dicht mogelijk bij de PIC plaatsen.
De LED, zit die niet toevallig verkeerdom? Trek de LED er eens uit en meet eens de spanning op dat PICpootje, wieweet is de LED stuk kan ook nog.
Bedankt het zat hem inderdaad in de fuse settings ik moest de interne osc nog op 4mhz zetten, en ik moest ook nog een weerstand van 10 k tussen de +5 en de mclr zetten. Ik post ook nog even de code voor als er meer mensen met dit probleem zijn.
#include <system.h>
#pragma CLOCK_FREQ 4000000
#pragma DATA _CONFIG1, _CP_OFF & _CCP2_RC1 & _DEBUG_OFF & _VBOR_2_0 & _BOREN_0 & _MCLR_OFF & _PWRTE_OFF & _WDT_OFF & _INTRC_IO
void main()
{
osccon = 01100010b; // Interne osc op 4mhz
cmcon = 0001b; // Comparators uit
trisa = 00000000b; //Alle I/O op output zetten
trisb = 00000000b; //Alle I/O op output zetten
while(1)
{
porta = 00000000b; //Alle pins uit
portb = 00000000b; //Alle pins uit
delay_ms(1000); //Delay van 1 seconden
porta = 00011111b; //Alle pins aan
portb = 00111111b; //Alle pins aan
delay_ms(1000); //Delay van 1 seconden
}
}