www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

GNU C Pomoč začetniku III

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Linux, unix razprave
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3351
Aktiv.: 15.03
Kraj: Dragomer

PrispevekObjavljeno: Pet Sep 23, 2011 12:06 am    Naslov sporočila:  GNU C Pomoč začetniku III Odgovori s citatom

Spet prosim pomoč:

Naprava na kateri delam (Beagleboard)
http://beagleboard.org/hardware
ima RS232 in teče pod Linux-om.
Na njej prevajam moje prve C-vaje. Premetavanje bajtov mi še nekako gre, počepnem pa, ko je potrebno kaj dati na izhod.

Kaj moram vse napisati v C-u, da bi zasegel ta vrata v moj program, definiral hitrost 9600 Bd in napisal "Hej, ljudje!"

Se priporočam.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
polh
Član
Član



Pridružen-a: Pet 08 Apr 2005 18:27
Prispevkov: 225
Aktiv.: 1.01
Kraj: Maribor-Ljubljana

PrispevekObjavljeno: Pet Sep 23, 2011 8:04 am    Naslov sporočila:   Odgovori s citatom

Če je vse kakor je ponavadi na Linux-u, potem ti bo ta koda mogoče kaj pomagala...

Koda:
#include <stdio.h>
#include <unistd.h>
#include <termios.h>
#include <fcntl.h>
#include "slika.h"

int main( int argc, char **argv )
{
int      com0, n=0, i=0, x, y;
struct termios    nastavitve;
char      chout=-1;

slika( *(argv+1) ); //Nalo?i BMP sliko

com0=open( "/dev/ttyS0" , O_RDWR | O_NOCTTY | O_NDELAY);

   if ( com0==-1 ) printf( "Ne morem odpreti /dec/ttyS0" ), exit(1);

fcntl( com0, F_SETFL, FNDELAY);

tcgetattr( com0, &nastavitve );
cfsetispeed( &nastavitve, B9600 );
cfsetospeed( &nastavitve, B9600 );

nastavitve.c_cflag |= ( CLOCAL | CREAD );

nastavitve.c_cflag &= ~PARENB;
nastavitve.c_cflag &= ~CSTOPB;
nastavitve.c_cflag &= ~CSIZE;
nastavitve.c_cflag |= CS8;      //8N1
nastavitve.c_oflag &= ~OPOST;      // RAW output jebote bog!!!!!

nastavitve.c_cflag &= ~CRTSCTS;      //Disable flow control

nastavitve.c_lflag &= ~(ICANON | ECHO | ISIG);

tcsetattr( com0, TCSANOW, &nastavitve );   //Uveljavi nastavitve

y=0;
   while ( y<8 )
   {
   x=0;
   
      while ( x<128 )
      {
      write( com0, &polje[x][7-y], 1 ); // 7-y   &polje[x][0]
      usleep(1000);
                x++;
                }
   usleep(200000);
   y++;
   }
close( com0 );
printf( "\n" );


Lp Tine

_________________
Gledališka skupina Reciklaža
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3351
Aktiv.: 15.03
Kraj: Dragomer

PrispevekObjavljeno: Pet Sep 23, 2011 9:00 am    Naslov sporočila:   Odgovori s citatom

Hmm, hvala.

Vsekakor bo potrebno malo študiranja.
Najprej preverim, ali moj linux ima vse #include datoteke (razen slike).
Potem bom malo iskal po tutorial, da najdem uporabljene funkcije/podprograme da vem kaj delajo.

Bom javill.
Hvala
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3351
Aktiv.: 15.03
Kraj: Dragomer

PrispevekObjavljeno: Pet Sep 23, 2011 9:25 am    Naslov sporočila:   Odgovori s citatom

Z malimi spremembami je prevedel program.
Sedaj grem študirat funkcije termios.h
Hvala za smer!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
polh
Član
Član



Pridružen-a: Pet 08 Apr 2005 18:27
Prispevkov: 225
Aktiv.: 1.01
Kraj: Maribor-Ljubljana

PrispevekObjavljeno: Pet Sep 23, 2011 9:32 am    Naslov sporočila:   Odgovori s citatom

Malenkost. Če je prevedel, bi skoraj moral delat.

Srečno!

_________________
Gledališka skupina Reciklaža
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3351
Aktiv.: 15.03
Kraj: Dragomer

PrispevekObjavljeno: Pet Sep 23, 2011 9:37 am    Naslov sporočila:   Odgovori s citatom

polh je napisal/a:
Malenkost. Če je prevedel, bi skoraj moral delat.
Srečno!

Nisem na lokaciji, delam od daleč, tako ne morem od daleč priklopiti terminal-emulatorja na napravo, da vidim, kako in kaj.
Se bo treba vzdigniti iz stola in premakniti nekaj km daleč, in tam probat.
Ta čas bomo pa malo študirali.
Hvala.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3351
Aktiv.: 15.03
Kraj: Dragomer

PrispevekObjavljeno: Ned Sep 25, 2011 1:59 pm    Naslov sporočila:   Odgovori s citatom

To je nekako proradilo, ko sem (začasno) dobil root user-a z vsemi privilegiji.

Sedaj pa zares:

http://www.elektronik.si/phpBB2/viewtopic.php?t=27458

Kako programirati tako, da pri vhodu RS232 'ne preslišimo nič, kako merimo čas v linuxu, ne da bi programorali zakasnitvene programske zanke?
Vprašanje je specificirano na zgornji povezavi.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Linux, unix razprave Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 75 dni


Powered by phpBB © 2001, 2005 phpBB Group