Linux за българи: Форуми

Програмиране => Общ форум => Темата е започната от: Йордан в Jun 12, 2004, 22:11



Титла: COM1-4
Публикувано от: Йордан в Jun 12, 2004, 22:11
здравейте
искам да попитам някой работил ли е с COM портовете
може ли да ми даде малко инфо за тях на БГ
и ако каже как се работи с тях... чете записва и такива неща... апа пък и примерчета ако има ... ама по леснички :D

та искам от една програма на C/C++ да пускам един LED диод
да речем
Примерен код

dioda_sweti;
for(tuka_ne_znam_kakwo_6te_ima) /*a moje i da ne e for*/
if!(LED){
dioda_sweti;
}else{
dioda_spira da sweti;
}

а тоя диод ще е "ръгнат" в някой от комовете...

надявам се да сте разбрали идеята ми :)
ако не пак ще обясня


Титла: COM1-4
Публикувано от: sebastianz55 в Jun 12, 2004, 22:40
не знам доколко ще ти е от полза, но тука има диоди ;)
http://mladen.sdf-eu.org/projects.html


Титла: COM1-4
Публикувано от: the_real_maniac в Jun 12, 2004, 23:26
apropos dev
man 2 open ;)

всичко си го пише в man , аз немога да кажа точно работил , но съм извеждал информация от ком и също съм можел да подавам , но не съм го използвал дефакто ;)

Една мааалка програмка ... беше ...

(аз съм я писал - не че е нещо голямо , но да кажа , ако има някакво питане ?!.)

Примерен код

/* towa mi be6e da si gledam tuk ot edna druga prog. - mnogo mi be6e polezna da shwana zamisyla;) ...

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
int creat(const char *pathname, mode_t mode);


open the device(com port) to be non-blocking (read will return immediately)
 
fd = open(devicename, O_RDWR | O_NOCTTY | O_NONBLOCK);

if (fd < 0)
{
perror(devicename);
exit(-1);
}
  
*/

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#include <stdio.h>

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

  char device[11];
  char buf[255];                       //buffer for where data is put
  int fd, res, inf, i;
  int format =3;
 
  strcpy(device, "/dev/ttyS");
 
  if(argc != 3)
    {
printf("\nUsage.: dev.run type-of-information com-num\n\n");

printf("type-of-information can be number betwen 1 and 3.:\n");
printf("1 - dec\n");
printf("2 - xec\n");
printf("3 - char\n\n");

printf("com-num can be num betwen 0-3;) -> depend which com port are useing YOU\n");
printf("/dev/ttyS0 = COM PORT 1\n");
      
printf("Test program of | man 2 open | .!\n\n");

printf("Programing by the_real_maniac :P -> uhhh maj raboti , no znae li 4owek :)))\n");

printf("Predpolagam trqbwa da se postawi u-wo i da se widi kakwo stawa :) \n");
printf("Edno e qsno , 4e otwarq , otwarq u-woto , 4e 4ete inf. , 4ete q !\n");
printf("Wyprosa e dali prawilno se izobrazqwa kato tip i sy6to taka imam i malki symneniq za 4eteneto\n, no kato cqlo wsi4ko izglevda ok.\n");
printf("Za otzivi ili syweti :PPP ako slu4ajno wi hrumne ne6to -> comexgroup.com -> Forum -> Programirane\n");
printf("Temata za || 4etene i zapis w serien port kak ? || na KingNothing ...\n");

printf("I logi4no trqbwa da ima nqkakwo u-wo na dadeniq port ttySX , kydeto X e m/u 0-3\n");

printf("Powered by WATER & STEP4e nqkakwo :)))\n");

exit(1);
    }
 
  i = atoi(argv[1]);
 
  if( !(i == 1) && !(i == 2) && !(i == 3) )
    {
printf("Pi6i samo ./dev.run i wiv usage-a;) :P :))))\n");
printf("Powered by WATER :)))\n");
      
exit(1);

    }
 
  i = atoi(argv[2]);
 
  if( i !=0 && i > 3)
    {

        printf("Pi6i samo ./dev.run i wiv usage-a;) :P :))))\n");
        printf("Powered by WATER & STEP4e nqkakwo :)))\n");

        exit(1);

    }
  else strcat(device, argv[2]); // move i bez nego , no ... :)
 
  printf("Opening device.: %s .\n", device);

  if ( (fd = open( device, O_RDONLY, S_IRWXU )) < 0 )
{
   printf("\nError opening device - /dev/ttyS0\n");
   exit(-1);
  
}
  else printf("Device open . Read-ONLY MODE !!!\n");

  printf("Waiting information from com port ...\n");
 
  res = read(fd, buf, 255);
 
  printf("Information send to your console /tty expect :P ...\n");
    
  for(i=0; i>res; i++)
{
   inf=buf[i];
  
   switch(format)
     {
 
      case 1: //dec
 
 printf("%d", inf);
 break;
 
      case 2: //xec
 
 printf("%x", inf);
 break;
 
      case 3: //char
 printf("%c", inf);
 break;
 
     }
  
}
 
  printf("All DONE ! Exit carefuly :))) :P;) ...\n");

return 0;

}



Титла: COM1-4
Публикувано от: Йордан в Jun 12, 2004, 23:27
дам щеше да ми свърши работа ако можеше да се изтегли :)


Титла: COM1-4
Публикувано от: sebastianz55 в Jun 12, 2004, 23:47
ако наистина си заинтересувам ще ти я дръпна щом имаш проблем


Титла: COM1-4
Публикувано от: Йордан в Jun 13, 2004, 10:36
о.к. дръпния.... при мен дава 404