hallo,
ik heb dus toch de c compiler gedownload. en nu zou ik willen starten in c. maar kan iemand mij helpen hoe je dus bv hello world programmeert in c want ik weet niet hoe ik er mee moet starten, het gaat over de pic 16f690. en bv in assembler start ik altijd met dit: #include <p16F690.inc>
__config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF)
maar hoe doe je dat dan in c?
kan iemand mij helpen hello world op te stellen?
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Goed boek kopen over C als je daar nog geen ervaring mee hebt.
Een 'hello world' example zit er bij de meeste compilers toch wel bij...
Zou je niet eerst in assembly verdergaan, daar was je toch al een eind mee op weg?
ja, maar ze gaven mij de tip te starten in C. en dacht van zal het toch eens proberen, en ja c ziet er mij overzichtelijker uit en handiger om mee te werken. en heb gekeken maar de hello world zit er niet tussen in de voorbeeld programma's, kan er echt niemand mij helpen met het vinden hoe ik het kan maken
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
De eerste les in de C18 tutorial is het befaamde 'hello world' example... 
http://www.kevin.org/frc/C18_3.0_getting_started.pdf
standaard hello world:
#include "stdio.h"
void main(void)
{
printf("Hallo Wereld\r\n");
}Maar dat werkt natuurlijk alleen als je een c-library voor je target hebt, en meestal heb je die alleen als je zelf de c-library vertelt hoe die een character moet printen.
Begin met C op je PC (in de commandline). Dat is veel makkelijker beginnen dan gelijk op je mcu.
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Welke compiler bedoel je dan? M'Chip heeft alleen C18/C30, geen C16.
(basis beginselen zijn trouwens gelijk...)
MikroC example: http://picnote.blogspot.com/2008/10/mikroc-hello-world-lcd-example.htm…
hallo ik heb de c 10/12/16 mcu compiler van microchip gedownload, en daar staat de hallo world echt niet tussen hoor.
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Kijk eens of je hier wat tussen kan vinden:
http://www.microchipc.com/sourcecode/
Bijvoorbeeld de bootloader voor de 16Fxxx die er tussen staat, daar zal je de incantaties moeten vinden die aan het begin moeten staan.
Ah. Hier is een voorbeeldje:
http://www.micro-examples.com/public/microex-navig/doc/100-led-blinkin…
(kennelijk hebben ze hun C-compiler vanzelf geleerd waar de registers zitten. Bij AVR moet je nog wat includes doen voordat ie dat weet.)
Hier is een voorbeeldje waar ze wel wat pic-specifieke includes en dergelijke doen:
http://sourceforge.net/projects/sdcc/forums/forum/1865/topic/3452632
Let op met de "config" settings. Als je hem daar vertelt dat ie een externe klok heeft, dan kan het zijn dat je hem lastig meer kan programmeren.
Hier nog een simpel voorbeeld:
http://www.ccsinfo.com/forum/viewtopic.php?p=98977
hallo, zal ondertussen eens kijken naar je voorbeelden, dit is wat ik tot nu toe heb gedaan:
dit programma heb ik gevonden in de manual van de compiler
#include <htc.h>
__CONFIG(FOSC_XT & WDTE_OFF& PWRTE_OFF & BOREN_OFF &
LVP_ON & WRT_OFF & DEBUG_ON & CPD_OFF & CP_OFF);
void init(void)
{
// port directions: 1=input, 0=output
TRISC = 0b00000000;
}
char counter;
void main(void)
{
counter = 0;
init();
while (1){
PORTC = counter;
_delay(10000);
counter++;
}
}
maar dan geeft ie dit van fout:
Build C:\Users\Sa\Desktop\microchip\probeersels\c\testje for device 16F690
Using driver C:\Program Files (x86)\HI-TECH Software\PICC\9.82\bin\picc.exe
Make: The target "C:\Users\Sa\Desktop\microchip\probeersels\c\testje.p1" is out of date.
Executing: "C:\Program Files (x86)\HI-TECH Software\PICC\9.82\bin\picc.exe" --pass1 C:\Users\Sa\Desktop\microchip\probeersels\c\testje.c -q --chip=16F690 -P --runtime=default --opt=default,+asm,-debug,-speed,+space,9 --warn=0 -D__DEBUG=1 --rom=default --ram=default --addrqual=ignore -g --asmlist "--errformat=Error [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s"
Executing: "C:\Program Files (x86)\HI-TECH Software\PICC\9.82\bin\picc.exe" -otestje.cof -mtestje.map --summary=default --output=default testje.p1 --chip=16F690 -P --runtime=default --opt=default,+asm,-debug,-speed,+space,9 --warn=0 -D__DEBUG=1 --rom=default --ram=default --addrqual=ignore -g --asmlist "--errformat=Error [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s"
HI-TECH C Compiler for PIC10/12/16 MCUs (Lite Mode) V9.82
Copyright (C) 2011 Microchip Technology Inc.
(1273) Omniscient Code Generation not available in Lite mode (warning)
Error [800] testje.as; 45. undefined symbol "DEBUG_ON"
Error [800] testje.as; 45. undefined symbol "WRT_OFF"
Error [800] testje.as; 45. undefined symbol "LVP_ON"
********** Build failed! **********
dus dan heb ik maar de debug on en wrt off en lvp on weggedaan, en dan krijg ik dit:
Build C:\Users\Sa\Desktop\microchip\probeersels\c\testje for device 16F690
Using driver C:\Program Files (x86)\HI-TECH Software\PICC\9.82\bin\picc.exe
Make: The target "C:\Users\Sa\Desktop\microchip\probeersels\c\testje.p1" is out of date.
Executing: "C:\Program Files (x86)\HI-TECH Software\PICC\9.82\bin\picc.exe" --pass1 C:\Users\Sa\Desktop\microchip\probeersels\c\testje.c -q --chip=16F690 -P --runtime=default --opt=default,+asm,-debug,-speed,+space,9 --warn=0 -D__DEBUG=1 --rom=default --ram=default --addrqual=ignore -g --asmlist "--errformat=Error [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s"
Executing: "C:\Program Files (x86)\HI-TECH Software\PICC\9.82\bin\picc.exe" -otestje.cof -mtestje.map --summary=default --output=default testje.p1 --chip=16F690 -P --runtime=default --opt=default,+asm,-debug,-speed,+space,9 --warn=0 -D__DEBUG=1 --rom=default --ram=default --addrqual=ignore -g --asmlist "--errformat=Error [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s"
HI-TECH C Compiler for PIC10/12/16 MCUs (Lite Mode) V9.82
Copyright (C) 2011 Microchip Technology Inc.
(1273) Omniscient Code Generation not available in Lite mode (warning)
Memory Summary:
Program space used 24h ( 36) of 1000h words ( 0.9%)
Data space used 5h ( 5) of 100h bytes ( 2.0%)
EEPROM space used 0h ( 0) of 100h bytes ( 0.0%)
Configuration bits used 1h ( 1) of 1h word (100.0%)
ID Location space used 0h ( 0) of 4h bytes ( 0.0%)
Running this compiler in PRO mode, with Omniscient Code Generation enabled,
produces code which is typically 40% smaller than in Lite mode.
See http://microchip.htsoft.com/portal/pic_pro for more information.
Loaded C:\Users\Sa\Desktop\microchip\probeersels\c\testje.cof.
********** Build successful! **********
maar als ik het dan programmeer, lichten de leds heel kort eens op, en verder doet het niets meer
dan heb ik het programma eens veranderd naar dit: heb de include file verandert:
#include <as16f690.h>
__config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF)
void main()
{
TRISC = 0 ; // set PORTB as OUTPUT
for(;;) // forever
{
PORTC = 0xff ; // turn all LEDs ON
Delay_ms(500) ; // wait 500 ms
PORTB = 0 ; // turn all LEDs OFF
Delay_ms(500) ; // wait 500 ms
}
}en dan krijg ik jammergenoeg dit :
Build C:\Users\Sa\Desktop\microchip\probeersels\c\testje for device 16F690
Using driver C:\Program Files (x86)\HI-TECH Software\PICC\9.82\bin\picc.exe
Make: The target "C:\Users\Sa\Desktop\microchip\probeersels\c\testje.p1" is out of date.
Executing: "C:\Program Files (x86)\HI-TECH Software\PICC\9.82\bin\picc.exe" --pass1 C:\Users\Sa\Desktop\microchip\probeersels\c\testje.c -q --chip=16F690 -P --runtime=default --opt=default,+asm,-debug,-speed,+space,9 --warn=0 -D__DEBUG=1 --rom=default --ram=default --addrqual=ignore -g --asmlist "--errformat=Error [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s"
Warning [162] C:\Program Files (x86)\HI-TECH Software\PICC\9.82\include\as16f690.h; 2.78 #warning: Header file as16f690.h included directly. Including <aspic.h> instead
Warning [374] C:\Program Files (x86)\HI-TECH Software\PICC\9.82\include\as16f690.h; 8.6 missing basic type; int assumed
Error [372] C:\Program Files (x86)\HI-TECH Software\PICC\9.82\include\as16f690.h; 8.6 "," expected
Error [314] C:\Program Files (x86)\HI-TECH Software\PICC\9.82\include\as16f690.h; 8.10 ";" expected
Error [222] C:\Program Files (x86)\HI-TECH Software\PICC\9.82\include\as16f690.h; 53.12 binary digit expected
Error [220] C:\Program Files (x86)\HI-TECH Software\PICC\9.82\include\as16f690.h; 83.11 exponent expected
Error [223] C:\Program Files (x86)\HI-TECH Software\PICC\9.82\include\as16f690.h; 132.11 digit out of range
Error [223] C:\Program Files (x86)\HI-TECH Software\PICC\9.82\include\as16f690.h; 143.11 digit out of range
Error [220] C:\Program Files (x86)\HI-TECH Software\PICC\9.82\include\as16f690.h; 167.12 exponent expected
Error [223] C:\Program Files (x86)\HI-TECH Software\PICC\9.82\include\as16f690.h; 182.16 digit out of range
Error [223] C:\Program Files (x86)\HI-TECH Software\PICC\9.82\include\as16f690.h; 193.11 digit out of range
Error [223] C:\Program Files (x86)\HI-TECH Software\PICC\9.82\include\as16f690.h; 202.11 digit out of range
Error [223] C:\Program Files (x86)\HI-TECH Software\PICC\9.82\include\as16f690.h; 209.11 digit out of range
Error [223] C:\Program Files (x86)\HI-TECH Software\PICC\9.82\include\as16f690.h; 220.10 digit out of range
Error [223] C:\Program Files (x86)\HI-TECH Software\PICC\9.82\include\as16f690.h; 232.10 digit out of range
Error [220] C:\Program Files (x86)\HI-TECH Software\PICC\9.82\include\as16f690.h; 239.10 exponent expected
Error [223] C:\Program Files (x86)\HI-TECH Software\PICC\9.82\include\as16f690.h; 256.13 digit out of range
Error [223] C:\Program Files (x86)\HI-TECH Software\PICC\9.82\include\as16f690.h; 264.9 digit out of range
Error [223] C:\Program Files (x86)\HI-TECH Software\PICC\9.82\include\as16f690.h; 265.12 digit out of range
Error [223] C:\Program Files (x86)\HI-TECH Software\PICC\9.82\include\as16f690.h; 266.12 digit out of range
Error [223] C:\Program Files (x86)\HI-TECH Software\PICC\9.82\include\as16f690.h; 267.9 digit out of range
Error [223] C:\Program Files (x86)\HI-TECH Software\PICC\9.82\include\as16f690.h; 278.13 digit out of range
Error [223] C:\Program Files (x86)\HI-TECH Software\PICC\9.82\include\as16f690.h; 303.10 digit out of range
Advisory[1] too many errors (21)
********** Build failed! **********
[Bericht gewijzigd door tarsam op (33%)]
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Ah,
Da's de Hi-Tech PICC compiler, niet die van Microchip...
In ieder geval nooit de include files wijzigen, want dan is het eind zoek.
(Je kunt nooit meer compatible code maken die een ander ook kan compileren)
maar even n nieuw project met als compiler de hi-tech c10/12/16. maak ene bestand dat je aan het project toevoegt, en haal de config regel daaruit. gebruik nu bovenin configure>configuration bits om de juiste config te maken. wel even het vinkje uitzetten!
[Bericht gewijzigd door JesperR op (95%)]
@jesperR,
ik snap niet juist wat je bedoelt, met een bestandje toevoegen?
en welk bestand moet ik dan toevoegen?
de as16f690.h
of de cas16f690.h
of de pic16f690.h
en moet ik dan beginnen met include<htc.h> of hoe moet ik dan beginnen?
[Bericht gewijzigd door tarsam op (54%)]
Capt501
http://pascal.nedlinux.nl Niet tegenspreken, Ik heb altijd gelijk !
@arco, het is nog steeds niet gelukt om het te laten werken in c, heb nog altijd built failed, maar je zegt dat die hi tech compiler niet van microchip is. maar ik denk van wel hoor, want ik heb het van de microchip site gehaalt.
ik geraak er echt geen wijs meer uit :s
edit:
ok heb dus idd net gevonden, ik had de hitech c compiler staan en het moet dan de mplab c compiler zijn? hoe kan ik daar dan aangeraken? voor de 16fxxx
[Bericht gewijzigd door tarsam op (23%)]
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Microchip heeft zelf geen C compiler voor de 16fxx, ze gebruiken de 'third-party' HiTech C compiler...
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
@rew: in deze site die je geeft, is het de c compiler voor de pic 16f87x maar ik heb de 16f690 dus daar ben ik dan weer niets mee :s
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Hoi Tarsam, Ik heb al een jaar of tien niet meer met PIC gewerkt, maar microchip zal er toch echt aan werken dat je minder moeite hebt om van een 16f87x naar een 16f690 over te stappen dan dat ik moeite heb om van een Atmega168 naar een pic over te stappen.
Kortom, als er documentatie is voor een C-programma voor de 16f87x, dan zal dat ook werken voor de 16f690. Het enige is dat als ze voorstellen dat je instelt in de compiler dat de processor 16f87x is, dan moet je dat vervangen door een instelling die zegt dat je processor 16f690 is. Dat soort aanpassingen zal je echt zelf moeten doen.
hallo,
ik was overtlaatst nog wat aan het proberen om in c te programmeren, nu zit ik de hele tijd met het probleem, wanneer ik dus bij de header files het bestand pic16f690.h toevoeg, en daarna mijn programma build komt dit op het scherm can't open include file "pic16f690.h": No such file or directory
en vroeger ging dit wel. en nu komt er dus daardoor op build failed, wat kan ik hieraan doen
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Dan is de file er niet, of het searchpath in de compiler staat niet goed.
(geef desnoods om te testen even het hele path van de headerfile aan in de sourcefile...)
hallo, ik snap niet zo goed wat je bedoelt met het hele path op te geven van de headerfile. Kan je eens en voorbeeld geven aub
C:\Program Files (x86)\HI-TECH Software\PICC\9.82\include\pic16f690.h is een voorbeeld van een compleet pad.