Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

C u Linuxu problemcic

[es] :: C/C++ programiranje :: C u Linuxu problemcic

[ Pregleda: 1919 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

wiktor91
Varazdin, Hrvatska

Član broj: 171052
Poruke: 116
*.adsl.net.t-com.hr.



Profil

icon C u Linuxu problemcic27.10.2008. u 22:33 - pre 188 meseci
E ovako, pripremam se za pisanje složenijeg C programa pa sad ponavljam C jer u C-u nisam dugo radio i evo zapeo sam zbog vrlo vjerovatno neke sitnice.

Radi se o kontroli paralelnog porta(LPT1) uz pomoč parapin.h biblioteke.
Evo sourcea

Code:
#include <stdio.h>
#include <stdlib.h>
#include <parapin.h>

int main()
{
    if(pin_init_user(LPT1) < 0)
    {
        printf("Obavi operaciju kao root\n");
    exit(0);
    } else {
        printf("Uspješna konekcija\n");
    }
    
    pin_output_mode(LP_DATA_PINS);

    set_pin(LP_PIN03 | LP_PIN04);
    wait(50);
    clear_pin(LP_PIN03 | LP_PIN04);
}


Problem je sljedeči. Kada pokrenem program na LEDicama se ništa ne događa kao da ih nisam ni upalio. Ako komentiram zadnju liniju(// clear_pin) LEDice se normalno upale, ako poslije toga maknem komentar sa clear_pin te ponovo pokrenem program LEDice se samo ugase. Pokušavam napraviti program koj če upaliti LEDice, pričekati neko vrijeme te ih ugasiti i ako ponovo pokrenem program da mi se opet upale i ugase.

Neznam dal je stvar u tome što radim na Linuxu tj. sa gcc kompajlerom ili u kodu. Ali u kodu nebi smio biti problem jer je sve točno napisano. Ali kada napišem neki drugi program sa wait funkcijom koj nema veze sa pinovima i LEDicama također ko da ga nema nego se program odmah izvrši. Da li se možda radi o postavci kompajlera ili nečem drugom?

Molim vas pomognite mi pa da mogu dalje nastaviti sa ponavljanjem zaboravljenog gradiva :D
Windows 95 /Win’ dz/: n., 32-bit extensions and a graphical shell for a 16-bit patch to an 8-bit operating system
originally coded for a 4-bit microprocessor, written by a 2-bit company, that can’t stand 1 bit of competition.
 
Odgovor na temu

Goran Rakić
Beograd

Član broj: 999
Poruke: 3766

Sajt: blog.goranrakic.com


+125 Profil

icon Re: C u Linuxu problemcic27.10.2008. u 23:38 - pre 188 meseci
Hm, ti koristiš:

Code:

$ man 2 wait
NAME
       wait, waitpid, waitid - wait for process to change state

SYNOPSIS
       #include <sys/types.h>
       #include <sys/wait.h>
       pid_t wait(int *status);


... dok tebi treba:

Code:

$ man 3 sleep
NAME
       sleep - Sleep for the specified number of seconds

SYNOPSIS
       #include <unistd.h>
       unsigned int sleep(unsigned int seconds);

http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
 
Odgovor na temu

wiktor91
Varazdin, Hrvatska

Član broj: 171052
Poruke: 116
*.adsl.net.t-com.hr.



Profil

icon Re: C u Linuxu problemcic28.10.2008. u 08:41 - pre 188 meseci
Jao... znao sam da je glupost! Evo to mi je kad nisam taknul C godinu dana.

Evo isprobao sam i radi odlično. E sad se ne sječam još jedne stvari, znam da sam koristio jednu funkciju za čekanje u ms a ne u sec. Koja je to funkcija?
Windows 95 /Win’ dz/: n., 32-bit extensions and a graphical shell for a 16-bit patch to an 8-bit operating system
originally coded for a 4-bit microprocessor, written by a 2-bit company, that can’t stand 1 bit of competition.
 
Odgovor na temu

Goran Rakić
Beograd

Član broj: 999
Poruke: 3766

Sajt: blog.goranrakic.com


+125 Profil

icon Re: C u Linuxu problemcic28.10.2008. u 08:53 - pre 188 meseci
Ako ukucaš komandu apropos sleep microseconds dobijaš izlaz:

Code:

$ apropos sleep microseconds
apmsleep (1)         - go into suspend or standby mode and wake-up later
nanosleep (2)        - pause execution for a specified time
rtcwake (8)          - enter a system sleep state until specified wakeup time
sleep (1)            - delay for a specified amount of time
sleep (3)            - Sleep for the specified number of seconds
usleep (3)           - suspend execution for microsecond intervals
ualarm (3)           - schedule signal after given number of microseconds



Odatle lako vidiš da su nanosleep i usleep ono što tebi vrši posao. Sledi komanda man 2 nanosleep:

Code:

$ man 2 nanosleep
NAME
       nanosleep - pause execution for a specified time

SYNOPSIS
       #include <time.h>
       int nanosleep(const struct timespec *req, struct timespec *rem);


http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
 
Odgovor na temu

wiktor91
Varazdin, Hrvatska

Član broj: 171052
Poruke: 116
*.adsl.net.t-com.hr.



Profil

icon Re: C u Linuxu problemcic28.10.2008. u 09:31 - pre 188 meseci
Ovo radi sa mikrosekundama ali mene zanimaju milisekunde(ms) ako postoji takva funkcija jer se točno sječam da sam koristio baš takvu funkciju u ms.

Danas mi prijatelj vrača knjigu za C pa ču vjerovatno nači unutra što me zanima.

Inače samo komentar na parapin.h bibilioteku, moje mišljenje je da je genijalna ima svakakve mogučnosti a opet je vrlo jednostavna za koristiti. Makar sam imao problema sa instalacijom jer sam tek nedavno počeo ozbiljnje s Linuxom ali uz pomoč googla i dokumentacije sam i taj dio odradio i puno toga naučio. To me posebno kod Linuxa veseli, za sve što radiš trebaš se malo potruditi i naučiti nešto novo i kad to nakraju uspješno odradiš osječaš se baš dobro i želiš saznati još novih stvari. A da ne govorim kako je Linux community puuuno susretljiviji i profesionalniji od Windows communitiya! Na Ubuntu forumu odgovor dobijem maksimalno za 2 sata a dok sam na nekim Windows forumima za sličan problem čekao po par dana da bi dobio neiskoristiv savjet.
Windows 95 /Win’ dz/: n., 32-bit extensions and a graphical shell for a 16-bit patch to an 8-bit operating system
originally coded for a 4-bit microprocessor, written by a 2-bit company, that can’t stand 1 bit of competition.
 
Odgovor na temu

Goran Rakić
Beograd

Član broj: 999
Poruke: 3766

Sajt: blog.goranrakic.com


+125 Profil

icon Re: C u Linuxu problemcic28.10.2008. u 12:11 - pre 188 meseci
Sad ću ja morati da demantujem ljubznost GNU/Linux zajednice, nanosleep je ono što ti treba, pa pročitaj vraga mu man stranicu...
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
 
Odgovor na temu

[es] :: C/C++ programiranje :: C u Linuxu problemcic

[ Pregleda: 1919 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.