Jag jobbar på att kunna ansluta en PIC till en PC för att bla styra en robot.
All hårdvara fungerar, det är bara mjukvaran till datorn som inte är klar.
Jag har försökt att lära mig hur man ska ta kontroll över serieporten i C, men inte lyckats. Jag vill gärna att det ska fungera på båda tex WinXP och Win98, vilket gör att det blir lite svårare att hitta kod.
Så om någon kunde ge mej en länk eller lite fungerande C-kod så skulle det vara jättebra!
Hittils är det här allt jag lyckats få fram, den lyckas skriva till porten men inte läsa..
(Synpunkter på koden i allmänhet mycket välkommna)
Kod: Markera allt
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char *argv[])
{
system("mode com2: baud=9600 parity=n data=8 stop=1"); //COM2 baud-rate och lite annat
char data_ut='3'; //data att skicka ut till PICen via COM2
FILE *ut; //Skapa en .... FILE
ut=fopen("COM2:", "w"); //Öppna COM2
if(ut==NULL) //Lyckades vi öppna COM2 ?
{
printf("FEL: kan inte öppna COM2 för skrivning!");
exit(0);
}
fprintf(ut,"%c", data_ut); //Skriv data till COM2
close(ut); //Stäng COM2
FILE *in; //Skapa ny FILE/stream eller vad man nu ska kalla det...
in=fopen("COM2:", "r"); //Öppna COM2 igen, men nu för läsning
if(in==NULL) //Lyckades vi öppna COM2 ?
{
printf("FEL: kan inte öppna COM2 för läsning!"); //Här går det fel, dvs porten öppnas inte....
exit(0);
}
fscanf(in,"%c", &data_ut); //Ta emot ett tecken från PICen
printf("%c",data_ut); //Skriv ut till skärmen
close(in); //Stäng COM2
return 0; //slut...
}