Programstruktur.
Grundstrukturen i ett C-program.
main är huvudprogrammet och ska alltid finnas med. Det heter alltid main.
main()
{
Programkod
}
main kan även se ut på följande sätt:
int main(int argc, *char[])
{
Programkod
}
Exempel:
#include <stdio.h>
int main()
{
printf( "Hej Världen!\n" );
getchar();
return 0;
}
main inleds alltid med { och avslutas alltid med }
Programdelar.
Header-filer.
#include <libpiface-1.0/pfio.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
........
Om an omger namnet på headerfilen med " ", sitationstecken istället för < och > , "minheader.h", måste man även ange den fullständiga
sökvägen. Ofta läggs denna headefil i samma bibliotek som programmet.
Makron, definitioner.
#define TILL 1
#define FRAN 0
#define UT1 0
#define UT2 1
#define UT3 2
#define IN1 0
#define IN2 1
........
Definiering av funktioner.
I de fall man placerar sina funktioner i slutet av koden måste man definiera dem i början, före main().
int venta(); // funktion
int relay(int relaynr, int sek); // funktion
........
Definiering av globala variabler.
Globala variabler definieras före main().
int tid = 0;
int stop = 0;
........
Huvudprogram, start.
int main(void)
{
alternativt:
int main(int argc, char *argv[])
{
argc = argument count (antal argument), argv[] = argument value (argumentvärde).
Detta innebär att när programmet körs/startas kan man ange ett eller flera
värden som programmet ska behandla.
........
Definiering av variabler.
I C måste alla variabler typdefinieras innan de kan användas. Samtidigt kan man ge variabeln ett startvärde.
int är heltal mellan -32768 och + 32767.
long är långt heltal.
float är 32-bitars flyttal med 6 signifikanta siffror.
double är flyttal med dubbel precision.
char är tecken, en byte långt.
char [] är tecken. Inom [] anges hur många tecken som ska rymmas i ordet.
int n,m;
char ord[15];
........
Funktionsanrop.
// Dra utgång 1
relay(UT1,9); // utgång 1 i 9 sek
// Utgång 2
relay(UT2,6); // utgång 2 i 6 sek
........
Huvudprogram, slut.
// Programmet slut
pfio_deinit();
}
........
Funktioner.
I de fall man placerar sina funktioner i slutet av koden måste man definiera dem i början, före main().
Fuktioner inleds alltid med { och avslutas alltid med } .
int venta()
{
int n =0;
n = pfio_digital_read(IN2);
if(n != 0){
stop = 1;
}
sleep(1);
niva();
tid = tid +1;
return tid;
}
int relay(int relaynr, int sek)
{
tid = 0;
// Dra utgång relaynr
printf("Drar utgång %d\n",relaynr+1);
pfio_digital_write(relaynr, TILL);
while (tid < sek){
venta();
}
// Släpp utgång relaynr
pfio_digital_write(relaynr, FRAN);
}
Komplett program.
Programmet är för Raspberry Pi med PiFace Digital I/O.
|