Avatar billede mabi Nybegynder
20. marts 2006 - 14:56 Der er 4 kommentarer og
1 løsning

Argument til program Stepmotor

Hej....

Har en lille program til styring af en stepmotor via printer port
det virker fint.... men jeg kunne godt tænke mig at jeg kunne tilføje et argument nå jeg kører programmet, feks : ./step 10000 75 hvor de 10000 er vaiablen (unsleep) og 75 er (loops)
så jeg kan ændrer tid og steps uden at compile om.

Har prøvet med "int main(int argc, char *argv[])" men kan ikke for det til at virke.

Bruger linux og gcc "og er ny i C meget 14 dage :-))"

Her er scriptet som giver fejl når jeg compiler.

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <asm/io.h>

#define BASEPORT 0x378 /* lp1 */

int main(int argc, char *argv[])

{
/* Adgang til port */
  if (ioperm(BASEPORT, 3, 1)) {perror("ioperm"); exit(1);}

  int us = 'argv[1]'; /* unsleep time */
  int sum = 0;
  int i = 1;
  int loops = 'argv[2]'; /* Step of 10*4 */

  while (i <=loops)

{
  sum = sum + i;
  i++;

  /* Step-1 (4) */
  outb(165, BASEPORT);

  /* Usleep */
  usleep(us);

  /* Step-2 */
  outb(102, BASEPORT);

  /* Usleep */
  usleep(us);

  /* Step-3 */
  outb(90, BASEPORT);

  /* Usleep */
  usleep(us);

  /* Step-4 */
  outb(153, BASEPORT);

  /* Usleep */
  usleep(us);

printf("arg1", us);

}

  /* Sætter D0-D7 til 0 */
  outb(0, BASEPORT);


  /* Afbryder forbindelse til port */
  if (ioperm(BASEPORT, 3, 0)) {perror("ioperm"); exit(1);}

  exit(0);
}

/* Slut af step.c */


Fejl:
step.c:14:12: advarsel: tegnkonstanten er for lang for dens type
step.c:17:15: advarsel: tegnkonstanten er for lang for dens type
Avatar billede arne_v Ekspert
20. marts 2006 - 15:17 #1
int us = 'argv[1]';
...
int loops = 'argv[2]';

skal nok vaere

int us = atoi(argv[1]);
...
int loops = atoi(argv[2]);
Avatar billede mabi Nybegynder
20. marts 2006 - 15:36 #2
Tak for det... det virker.
Jge kunne jo google, og se hvorfor det skal værer sådan,
men du kunne jo også prøve at forklare det :-))
Hvis du gider eller så smid et svar....
Avatar billede arne_v Ekspert
20. marts 2006 - 15:42 #3
'x' er kun til enkelte tegn
"xxx" er til flere tegn
det var skyld i fejl teksten
men du skal konvertere fra char* til int og det kan du goere med atoi
muligvis vil du finde http://www.eksperten.dk/artikler/143 intressant at laese
Avatar billede arne_v Ekspert
20. marts 2006 - 15:47 #4
og et svar
Avatar billede mabi Nybegynder
20. marts 2006 - 15:51 #5
Tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB