Skoči na vsebino




Ne najdeš ustrezne teme? Hitro vprašanje?

ask away

865 odgovorov na to temo

#41 inzenir

    ne ve, kam bi sam s sabo.

  • šerifi in depjutiji
  • 545 sporočil

Objavljeno 07 avgust 2012 - 12:22

Teži že, delati bi vseeno moglo. Kak to, da delaš v Eclipse? Delaš na linuxu? Tudi tam maš QT, ki je, vsaj meni, boljši.

Drugače pa bug je čisto eclipsovski. Koda je pravilna.

#42 Dr. Angry

    ni nič.

  • rumeni jaki
  • 672 sporočil

Objavljeno 07 avgust 2012 - 14:05

To ni bug v Eclipse, ampak pravilno opozorilo s strani IDE. Preskakovanje iz enega case-a na drugega je v 99% primerov bug v kodi, zato IDE opozori na tak primer.

Kako ta konkretni primer rešit ne vem, se pa izogibam pisanju take kode, če je možno. Če boš tako pustil, potem zakomentiraj, da bo vsakemu bedaku jasno da je fallthrough namenski, da ti ne bo šel kdo "popravljat hrošča".

#43 inzenir

    ne ve, kam bi sam s sabo.

  • šerifi in depjutiji
  • 545 sporočil

Objavljeno 07 avgust 2012 - 14:34

Mah, glede na to, da je v jeziku dovoljeno, eclipse pa teži, se mi vidi bedarija. Res je, da je to vir ogromnih napak in so v marsikaterem jeziku popolnoma odstranili. Take primere moraš potem reševati z goto ali čim podobnim.

#44 Zizy

    več kot očitno žre doručak na mn3njalu.

  • prostozidarji
  • 4 281 sporočil

Objavljeno 08 avgust 2012 - 08:06

No ja to je bolj bug prazgodovinskega Cja z milijonom mest za buge kot Eclipsa. Eclipse dela cisto prav in nocem da mi neha opozarjati na fallthroughe, hocem samo da mi neha teziti za tega, ker je namenski.
Sem naredil z goto-jem dokler ne potuhtam cesa boljsega, sram me je da ga uporabljam.

In ja, na linuxu sem in koda na zalost nuca biti portable in vsa ta jajca ki pridejo zraven. Na winsih bi delal v bistveno bolj civiliziranem C# in Visual studiu, pa ne bi imel teh tezav.

#45 inzenir

    ne ve, kam bi sam s sabo.

  • šerifi in depjutiji
  • 545 sporočil

Objavljeno 08 avgust 2012 - 09:55

seveda bi. če hočeš narediti fallthourg v c# moraš meti tak:


int vrednost = 17;
switch(vrednost)
{
   case 1: // normalno
	  /*koda*/

   case 2: //gre, ker sta case stavka zaporedna
   case 3:
	  /* koda */
	  break;

   case 4: //ne gre, ker je fall-through
	  /* koda */
   case 5:
	  /* koda */
   break;

   case 6: //gre, ker greš z goto
	  /* koda */
	  goto case 7;
   case 7:
	  /* koda */
   break;

   default:
	  /* koda */
	  break;
}

Sicer pa ne moreš pisati v eclipse nekaj ala //@SupressWarning? Saj pa ma eclipse tisti rumeni trikotnik v vrstici z napako, klikneš na tisto pa bi ti moglo ponuditi, da ignorira tisti warning.

#46 Zizy

    več kot očitno žre doručak na mn3njalu.

  • prostozidarji
  • 4 281 sporočil

Objavljeno 08 avgust 2012 - 11:07

Aha ja, je opcija izklopiti tisti warning z /* no break */; samo ne sme biti nobenega drugega komentarja za tem. Meni ni delalo ker sem imel potem za tistim se nek komentar, pa ga je ocitno zmedlo in tudi mene, ker nisem vedel da ga res lahko utisam samo na tistem mestu. Fajn.
Pa ja, vem kako funkcionira switch v C# drugace. Manj sans za buge, medtem ko imas pa se vedno lahko fallthrough ce ga zelis (pravzaprav je bolj goto kot fallthrough, ker gres lahko na poljuben case). Upam da si kmalu omislijo tudi case 3->10:, vcasih bi koristil.

#47 inzenir

    ne ve, kam bi sam s sabo.

  • šerifi in depjutiji
  • 545 sporočil

Objavljeno 08 avgust 2012 - 12:36

mnja, case 3 to 10 bi bilo awesome in pa case 3,5, 8: ; case 4,6,10:

#48 Mr Shears

    Drkež ni preveč težak, če je človek strokovnjak.

  • komunisti
  • 801 sporočil

Objavljeno 08 avgust 2012 - 21:36

zanima me kako na linuxu brat serial port (kamor mi arduino pošilja podatke), da mi ne bo porablo neumno dosti procesorja?
trenutno uporabljam bash skripto ki je preveč procesorsko zahtevna:
#! /bin/bash
ARDUINO_PORT=/dev/ttyUSB0
ARDUINO_SPEED=9600
# Set speed for usb
stty -F $ARDUINO_PORT ispeed $ARDUINO_SPEED ospeed $ARDUINO_SPEED raw
exec 6<$ARDUINO_PORT
# Read data from Arduino
while read -u 6 f ;do
# Remove trailing carriage return character added
# by println to satisfy stupid MS-DOS Computers
f=${f:0:${#f} - 1}
# Do something with the data read
echo "$(date) $f was read."
done

najdu sm to na stackoverflow:
http://stackoverflow...ut-high-cpu-use
ampak:
uni program mi noče kompajlat, niti ne vem če je to C al C++
zna kdo pomagat?

#49 kr?en

    samo na zelen pofarban člouk

  • vesoljci
  • 1 720 sporočil

Objavljeno 08 avgust 2012 - 21:41

Imo je C.

#50 Mr Shears

    Drkež ni preveč težak, če je človek strokovnjak.

  • komunisti
  • 801 sporočil

Objavljeno 08 avgust 2012 - 21:51

ok ampak sem probal kompajlat tako z gcc kot z g++ in javi (podobne) errorje:
"g++ serialread.cpp -o serialread":
serialread.cpp:4: error: expected constructor, destructor, or type conversion before ‘.’ token
serialread.cpp:5: error: expected constructor, destructor, or type conversion before ‘.’ token
serialread.cpp:7: error: expected unqualified-id before ‘if’
serialread.cpp:11: error: expected unqualified-id before ‘else’
"gcc -o serialread serialread.c":
serialread.c:4: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘.’ token
serialread.c:5: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘.’ token
serialread.c:6: error: initializer element is not constant
serialread.c:7: error: expected identifier or ‘(’ before ‘if’
serialread.c:11: error: expected identifier or ‘(’ before ‘else’


#51 kr?en

    samo na zelen pofarban člouk

  • vesoljci
  • 1 720 sporočil

Objavljeno 08 avgust 2012 - 21:58

Zal ti ne znam kaj bolje pomagat, nisem toliko doma v C/C++ :)

Mogoce ti manjka:
sys/poll.h

#52 Mr Shears

    Drkež ni preveč težak, če je človek strokovnjak.

  • komunisti
  • 801 sporočil

Objavljeno 08 avgust 2012 - 22:00

aha v /sys/ mapi ga res ni, je pa v /usr/include/sys/
bom probal s popravljeno lokacijo
edit: nope, isti errorji kot prej

#53 Dr. Angry

    ni nič.

  • rumeni jaki
  • 672 sporočil

Objavljeno 08 avgust 2012 - 22:38

A maš to kodo s stack overflowa v kakšni funkciji, al si sam copy-pastal in probaš compilat?

#54 Mr Shears

    Drkež ni preveč težak, če je človek strokovnjak.

  • komunisti
  • 801 sporočil

Objavljeno 08 avgust 2012 - 22:54

samo c/p, ne znam nič Cja :s

#55 Dr. Angry

    ni nič.

  • rumeni jaki
  • 672 sporočil

Objavljeno 08 avgust 2012 - 23:03

Vsa logika v c-ju mora bit v funkcijah. Poleg tega mora vsaka aplikacija vsebovat "main" funkcijo, ki se kliče ko se aplikacija zažene.

Če ne znaš nič, najbolje da kak tutorial poiščeš in pogledaš strukturo enostavnih aplikacij, da ti bo bolj jasno.

Kaj več težko pomagam, sploh se ne spomnim kdaj sem nazadnje v c-ju pisal, sploh pa za linux.

#56 Zizy

    več kot očitno žre doručak na mn3njalu.

  • prostozidarji
  • 4 281 sporočil

Objavljeno 09 avgust 2012 - 07:38

To je C. Nucas napisati okoli funkcijo, torej recimo vso tole kodo (razen define), das v:
void read_port()
{
int serial_fd = 0; //drugace ti bo tezilo da serial_fd ni definiran.
//KODA, ki si jo nasel
}
Zdej, serial_fd sem nastavil na 0 da se kompajla. Ce te vrstice nimas, bo tezil da serial_fd ni definiran. Katera stevilka nuca biti tukej v resnici da bo delalo prav se mi sanja ne, v sys/poll.h ne pise nic dovolj uporabnega, manualov se mi pa ne da brati.
Aja, potem pa nucas se eno funkcijo - main, ki je vstopna tocka programa, v dokaj simpel obliki bi izgledala takole:
int main()
{
while (1)
if (time_to_read_port)
{
read_port();
}
else
{
wait_some_time_then_try_again;
}
return 0;
}
Tisti time_to_read_port je od tebe dolocen pogoj kdaj hoces brati port, ce ga ne preberes pa daj nek wait, sicer bo zanka divjala s polno paro. return 0; je ker to nucas na koncu main funkcije. Tudi ce ne bos nikoli prisel do tja zaradi neskoncne zanke.

#57 ReJzOr_na_plin

    Hai voluto la bicicletta viola? E adesso pedala!

  • mafija
  • 694 sporočil

Objavljeno 09 avgust 2012 - 09:49

Oglej si sporočiloZizy, ob 07 avgust 2012 - 08:21, rekši:

Eclipse mi v Cju tezi za fallthrough v switchu. Zelim nekej podobnega
case 1:
fi = fi + PI/2;
case 2:
//do work
break;
Se pravi, case 1 bi samo spremenil fi, potem pa laufal case 2. Hocem da mi zadeva neha teziti, po moznosti da dam eksplicitni fallthrough. Nocem izklopiti checkinga. Okej zadeva je resljiva tudi s funkcijo samo se mi zdi malo trapasto celoten case 2 prestaviti v funkcijo in jo napopati na koncu case 1, sploh ker bi bila funkcija uporabljena izkljucno za tedva primerka.
Naj na zacetku case2 dam mesto na katerega bom sel z goto iz case 1? Ali je kaka boljsa resitev?

probi tole, sem preprican da bi moralo delat
case 1:
fi = fi + PI/2;
goto case 2;
case 2:
//do work
break;


#58 Spura

    ravnokar sir je.

  • prostozidarji
  • 68 sporočil

Objavljeno 09 avgust 2012 - 10:13

Oglej si sporočiloMavrik, ob 05 julij 2012 - 11:33, rekši:

raje beri source Djangota
....
in PREBERI TISTI SOURCE. Ker če boš ponovno izumljal te stvari boš naredil sranje, naučil se pa ne boš pol toliko.
This, hundred times this. Folk misli da se bo najvec naucil, ce bo programiral. Ni tako. Najbolj pomembno je proucevanje dela profijev.

#59 Mr Shears

    Drkež ni preveč težak, če je človek strokovnjak.

  • komunisti
  • 801 sporočil

Objavljeno 09 avgust 2012 - 10:52

Zizy: evo program je zdej tak:
#include <sys/poll.h>
#include <sys/unistd.h>
#include <stdio.h>
#define SERIAL_DEV "/dev/ttyUSB0"
void read_port()
{
int serial_fd = 0;
struct pollfd fds[1];
fds[0].fd = serial_fd;
fds[0].events = POLLIN ;
int pollrc = poll( fds, 1, 1000);
if (pollrc < 0)
{
  perror("poll");
}
else if( pollrc > 0)
{
  if( fds[0].revents & POLLIN )
  {
   char buff[1024];
   ssize_t rc = read(serial_fd, buff, sizeof(buff) );
   if (rc > 0)
   {
	/* You've got rc characters. do something with buff */
	printf("%d\n", buff);
   }
   else
   {
	printf("0\n");
   }
  }
}
}
int main()
{
int i = 0;
while (1)
if (1)
{
  printf("%d : buff = \n", i);
  read_port();
  i++;
  sleep(1);
}
else
{
  sleep(1);
}
return 0;
}
output pa tak:
0 : buff =
1 : buff =
2 : buff =
3 : buff =
4 : buff =
...
zgleda sploh ne dela printf v tej funkciji read_port? pa nikjer ni nastavljen baud rate (9600), to mi je čudno.

#60 Zizy

    več kot očitno žre doručak na mn3njalu.

  • prostozidarji
  • 4 281 sporočil

Objavljeno 09 avgust 2012 - 11:13

Malo vec izpisuj, bos hitreje opazil kaj se dogaja. Ocitno nikoli ne prides do printf-ja.
Za tale rate in vse to - jaz pojma nimam ce je koda v redu, nikoli nisem delal teh branj, ampak vsekakor je tale serial_fd neka magija, ki bi si jo nucal pogledati v kaki dokumentaciji na koliko nuca biti nastavljena da bo delalo kot naj bi, tudi ce je ostali del kode cisto perfekten.

@ Rejzor - to ne dela v Cju. V C# bi naredil tako ja. Ampak saj sem resil zadevo, treba je bilo napisati komentar /* no break */ kot zadnjo zadevo v tisti funkciji, pa neha teziti.

#61 Slasher

    je fejst čez les.

  • legende
  • 1 092 sporočil

Objavljeno 12 avgust 2012 - 19:04

upam, da sem dobro nastavil vprašanje in kodo. imamo:

class A{
   class B{
   }
}
public class C{
}

katerih od teh trditev je pravilnih:
a) razred A je zunanji razred
b) razred B je zunanji razred
c) razred C je zunanji razred
d) razred C je notranji razred
e) B je notranji razred
f) B je anonimni notranji razred

jaz menim da c, e in f?

#62 Izbrisani_Mavrik_*

  • Guests

Objavljeno 12 avgust 2012 - 19:07

Kaj po vaši šolski definiciji pa bi naj bil "zunanji razred"?

Drugače, B ne more biti anonimni razred ker ima ime - "B" ;)

Tipično vidiš lahko anonimne razrede recimo v Androidu:


Button button;

button.setOnClickListener(new OnClickListener {

	 @Override
	 public void onClick() {
		  // Neki neki
	 }
}


V tem primeru imaš anonimni razred, ki implementira interface OnClickListener - nima imena in si ga definiral kar in-place.

#63 Slasher

    je fejst čez les.

  • legende
  • 1 092 sporočil

Objavljeno 13 avgust 2012 - 08:01

a ni v tvojem primeru ime razreda OnClickListener?

#64 kr?en

    samo na zelen pofarban člouk

  • vesoljci
  • 1 720 sporočil

Objavljeno 13 avgust 2012 - 08:43

Tisto je ime interface-a, ki se ga lahko instancira (napram abstraktnemu razredu).

Ajde, ne da se ga instancirat, ampak v tem primeru se ga lahko, ker notri podas implementacijo tega interfacea (oz. ti instanciras implementacijo interfaceam, ki je brez imena).

InterfaceA i = new RandomInterfaceAImplementation();

Malo cudno sem to razlozil :D

#65 Spura

    ravnokar sir je.

  • prostozidarji
  • 68 sporočil

Objavljeno 14 avgust 2012 - 13:33

Oglej si sporočiloSlasher, ob 12 avgust 2012 - 19:04, rekši:

upam, da sem dobro nastavil vprašanje in kodo. imamo:

class A{
   class B{
   }
}
public class C{
}

katerih od teh trditev je pravilnih:
a) razred A je zunanji razred
b) razred B je zunanji razred
c) razred C je zunanji razred
d) razred C je notranji razred
e) B je notranji razred
f) B je anonimni notranji razred

jaz menim da c, e in f?
a c e

#66 Spura

    ravnokar sir je.

  • prostozidarji
  • 68 sporočil

Objavljeno 14 avgust 2012 - 13:36

Oglej si sporočilokr?en, ob 13 avgust 2012 - 08:43, rekši:

Tisto je ime interface-a, ki se ga lahko instancira (napram abstraktnemu razredu).

Ajde, ne da se ga instancirat, ampak v tem primeru se ga lahko, ker notri podas implementacijo tega interfacea (oz. ti instanciras implementacijo interfaceam, ki je brez imena).
Ne. Gre za razred ali interface, ki ga anonimni class extenda oziroma implementa. V primeru da je naveden interface v deklaraciji anonimnega razreda potem razred extenda Object.

#67 kr?en

    samo na zelen pofarban člouk

  • vesoljci
  • 1 720 sporočil

Objavljeno 14 avgust 2012 - 14:00

Oglej si sporočiloSpura, ob 14 avgust 2012 - 13:36, rekši:

Ne. Gre za razred ali interface, ki ga anonimni class extenda oziroma implementa. V primeru da je naveden interface v deklaraciji anonimnega razreda potem razred extenda Object.

Kul, hvala za obrazlozitev. Sem si malo narobe predstavljal :) Ce sem pravilno razumel, potem kot "ime" anonimnega razreda (new NekiNeki { }), podas razred ali interface, ki hoces, da ga anonimni razred extenda/implementira?

#68 Spura

    ravnokar sir je.

  • prostozidarji
  • 68 sporočil

Objavljeno 14 avgust 2012 - 14:39

Da. Poleg tega ne smes pozabit oklepajev. Ce reces:

new MouseAdapter() { } naredis instanco anonimnega classa, ki extenda MouseAdapter. Oklepaji pa specificirajo klic konstruktorja super classa (pri anonimnih classih na podlagi interfaceov je seveda super class Object, ki ima samo prazen konstruktor kar pomeni da je vedno () za imenom). Recimo:


new MyClass("myId") {....}

je effektivno tole:

class MySubclass extends MyClass {
    MySubclass(String id) {
       super(id);
    }
}

new MySubclass("myId");


#69 Ragezor

    obvlada hendling, najbolj pa cobro!

  • rumeni jaki
  • 1 002 sporočil

Objavljeno 14 avgust 2012 - 19:14

Kater library naj uporabim za hashanje passwordov v Pythonu? trenutno bi rekel, da so zadeve kar vredu narejene ampak vedno, ko smo se učili o kriptografiji so poudarjali, da naj ne implementamo svojih zadev. uporabljam sicer hmac in hashlib ampak me zanima, če še je kaj nad tem, ki bi to združilo in mi recimo samostojno generiralo random salte.

če ma kdo čas in znanje lahko malo pogleda
https://github.com/ragezor/mfnblog

tole zadevščino bi rad dokončal, da bi mel nekaj za pokazati, ko iščem študentsko delo, pa me zanima kako je kaj z urejenostjo kode, če so kje kaki večji debilizmi noter in podobno. predvsem me skrbi to, da sem hotel database modele ločiti od glavnega fila, kjer so not page handlerji in je nastala čudna situacija, da sta oba fila odvisna eden od drugega in se morata importati.

#70 Izbrisani_Mavrik_*

  • Guests

Objavljeno 14 avgust 2012 - 22:33

Trenutno se najbolj priporoča bcrypt (python knjižnica py-bcrypt), ker je občutno počasnejši od SHA-512 (ali SHA-256 in podobnih) kar je v primeru hashanih geseld good thing - če bo hotel napadalec razbiti gesla v bazi z brute-force napadom se bo kar načakal da se vse preveri :)

Druga stvar - ne pozabit dodat salt preden hashaš in poskrbim da je vsako geslo hashano z drugim saltom. Brez težav ga lahko napišeš zraven v tabelo.
Zakaj je to dobro pa je tvoja domača naloga ;)

Bom pogledal kodo jutri in povedal kaj si mislim... bo še kdo drugi tudi verjetno :)

#71 Izbrisani_Mr_K_*

  • Guests

Objavljeno 15 avgust 2012 - 02:24

Sicer nimam pojma o Pythonu so pa precej moteče povsod spremenljivke ki ne pomenijo nič (denimo u ki drži userja - se ne da lepo dati kar spremenljivko z imenom user)? Všeč mi je da ne delaš pregolomaznih vrstic (na to so nekateri precej občutljivi :P ).
Malce moti precej kode v razredu Signup (to se da precej bolj enostavno in lepše rešiti) post - recimo UserData razred z Validate metodo in seznamom validacijskih pravil. Nad Userjem je težko dodati še metodo Exists? Mislim da je boljše in hitrejše kot inicializacija objekta in potem preverjanje če obstaja (tudi to bi lahko dodal kot validacijsko pravilo). Signup sedaj dela kar precej stvari. Morda bi lahko malce razčlenil.

#72 Ragezor

    obvlada hendling, najbolj pa cobro!

  • rumeni jaki
  • 1 002 sporočil

Objavljeno 21 avgust 2012 - 18:09

Nevem če se splača delati exist metodo pri userju, ker prišparaš eno vrstico. Oziroma z exist metodo bi zapakiral not metodo User.by_name(). Pa če že delam Handlerje za vsak page posebej, zakaj nebi handlerji nekaj delali. Isto mi je, če naredim metodo nekje drugje in jo potem samo kličem v handlerju ali pa handler naredi delo. Itak nebom nikjer drugje validiral signup podatkov kot pri signup procesu.

Drugače se prvo preveri, če najde userja z imenon in če ga ne, se user ustvari in zapiše v database. Ne ustvarjam userja preden preverim, če že obstaja. Celega userja pa vzamem iz baze zato, ker še pred kratkim v google datastore nisi mogel iskati nič drugega kot User.all() oz. SELECT *. Ampak mislim, da so to zdaj popravili in lahko dobiš ven posamezne atribute.

Drugače pa je web development res annoying branža za programiranje, ker je milijon tehnologij, ki jih moraš poznati. Se že veselim učenja javascripta, ko bom probal spraviti blog v dejansko uporabno obliko.

A se da v jinji še kako drugače poslati podatke templatu, recimo da bi imel template isti context in bi uporabljal spremenljivke brez, da jih pošiljam preko render metode?

Aja, pa nekaj bi rabil, za commente, da bi userji lahko malce olepševali tekst. Recimo podobno kot ma reddit, da lahko odebeljis, pofarbas in tko.

#73 Đerzelez Alija

    vesoljski vojvoda

  • vesoljci
  • 353 sporočil

Objavljeno 21 avgust 2012 - 20:53

mam en problem s PyScripterjem, in sicer z bližnjicami: po defaultu kombinacija tipk: AltGr + F odpre Find-in-files, ne napiše pa kvadratnega oklepaja [. podoben problem sem mel s tem oklepajem {, ampak sem zbrisal default bližnjico, za [ pa tega ne morem storiti, ker je ni na nobenem seznamu bližnjic v programu :\. kaj mi je storiti?

edit: nevermind, našel: Tools/Options/IDE Shortcuts, category View, command actViewFindResults, zbrišeš bližnjico.

#74 g250

    ne ve, kam bi sam s sabo.

  • mn3njalničarji
  • 535 sporočil

Objavljeno 27 avgust 2012 - 16:30

mogoče bo tuki kdo znal pomagat...

Na ftpju sem po pomoti zbrisal nekaj fajlov, a jih je možno kako dobit nazaj?

Backupa nimam, ker jih nisem spreminjal na mojem compu :/

#75 bainit

    tekmuje v snemanju. Kožce z glavce, se razume.

  • vesoljci
  • 6 732 sporočil

Objavljeno 27 avgust 2012 - 17:00

mogoce, ce si jih uploadal vec kot 24h nazaj in ima admin nastavljen backup tut tega pub direktorija na ftp. sam dvomim (da ma tut ta dir).
najbolje da ga vprasas. to velja, ce si mislil FS ftp, za kaksenga public pozabi.

a je kaksna seminarska za LECAD slucajno?

#76 g250

    ne ve, kam bi sam s sabo.

  • mn3njalničarji
  • 535 sporočil

Objavljeno 27 avgust 2012 - 17:04

na-a, osebna spletna stran

#77 bainit

    tekmuje v snemanju. Kožce z glavce, se razume.

  • vesoljci
  • 6 732 sporočil

Objavljeno 27 avgust 2012 - 17:11

forget it

#78 Mr Shears

    Drkež ni preveč težak, če je človek strokovnjak.

  • komunisti
  • 801 sporočil

Objavljeno 28 avgust 2012 - 19:58

Kaj lahko kdo preveri če je program prav napisan?
program naj bi prebral digitalni signal na pinu digital2
če je signal high, naj počaka 1 sekundo in potem vrti motor dokler signal ostane high
ko gre signal na low, naj počaka 1 sekundo in potem vrti motor v drugo smer dokler signal ostane low

#include <Stepper.h>  // knjižnica za krmiljenje koračnih motorjev

#define STEPS 48  // število korakov v enem obratu

Stepper stepper(STEPS, 8, 9, 10, 11);  // naslovi povezav na motor

int input = 2;  //naslov za povezavo iz NI USB-6009
int signal = HIGH;  //nastavi začetni signal

void setup()
{
  stepper.setSpeed(100);  //nastavimo hitrost motorja
  pinMode(input, INPUT);  //nastavimo naslov 2 na vhod
}

void loop()
{
  signal = digitalRead(input);  //preberemo signal iz NI USB-6009
  switch (signal) {
    case HIGH:  //signal = črpaj
	  delay(1000);  //počakaj 1 sekundo
	  while (signal == HIGH) {
	    stepper.step(STEPS);  //zavrti motor za en obrat
	    signal = digitalRead(input);  //ponovno preberi signal
	  }
    case LOW:  //signal = prazni
	  delay(1000);  //počakaj 1 sekundo
	  while (signal == LOW) {
	    stepper.step(-STEPS);  //zavrti motor za en obrat v drugo smer
	    signal = digitalRead(input);  //ponovno preberi signal
	  }	  
  }
}


#79 Ragezor

    obvlada hendling, najbolj pa cobro!

  • rumeni jaki
  • 1 002 sporočil

Objavljeno 28 avgust 2012 - 20:06

am manjka ti main

pa define HIGH in LOW (če ni v stepper.h), tudi digitalRead je v stepper.h?

#80 Mr Shears

    Drkež ni preveč težak, če je človek strokovnjak.

  • komunisti
  • 801 sporočil

Objavljeno 28 avgust 2012 - 20:15

nikoli še nisem vidu da bi se main uporabljal
digitalread je osnovna funkcija ni treba nič importat
za define HIGH in LOW tudi ni treba se mi zdi: http://arduino.cc/en...rence/Constants





1 Uporabnik(ov) bere to temo

0 članov, 1 gostov, 0 anonimnih uporabnikov