Soros port kezelése - összehasonlítás

Processing/Wiring (illetve C) nyelvű programozási fogások, tippek. (AVR-Duino, Arduino, EthDuino, Diecimila, Severino, Nano, LilyPad)
Gyuresz
Újonc
Újonc
Hozzászólások: 13
Csatlakozott: 2013. július 13. szombat, 18:34

Soros port kezelése - összehasonlítás

Hozzászólás Szerző: Gyuresz »

Üdv!
Kezdő vagyok, nagyon az elején járok a komolyabb dolgoktól...
Összeütöttem ezt a "kis" programot :) de sajnos az értékeket nem akarja változtatni...
Valaki megnézi, hogy hol rontottam el? Az egész cucc csak kísérleti jellegű, valamit ki szeretnék próbálni.

Előre is köszönöm !
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: AVR kezdőnek

Hozzászólás Szerző: Robert »

Programkód nélkül nehéz lesz... :)
Gyuresz
Újonc
Újonc
Hozzászólások: 13
Csatlakozott: 2013. július 13. szombat, 18:34

Re: AVR kezdőnek

Hozzászólás Szerző: Gyuresz »

Nem akarja csatolmánynak feltölteni !!!
Hogy görgetős ablakba pakolja, hogyan tegyem b hogy ne egy fél kilóméteres szövegrész legyen, hanem görgetős ablak, melyik ikon az? Előnézetben nem igazán akarja megmutatni!
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: AVR kezdőnek

Hozzászólás Szerző: Robert »

Nevezd át txt-re és csatold.
vagy
A CODE ként szúrd be. Az ablakban lesz.


Kísérletezni -> viewforum.php?f=45
Gyuresz
Újonc
Újonc
Hozzászólások: 13
Csatlakozott: 2013. július 13. szombat, 18:34

Re: AVR kezdőnek

Hozzászólás Szerző: Gyuresz »

Elküldtem mailban is ! Szerintem ide válaszólj.
Hagyd a mailt!

Kód: Egész kijelölése

int inByte =0;
int adatjott =0;
int inputVariablehi =500 ;
int inputVariablelo =500 ;

char fel1   ='x' ; // +1   leptetes bekapcsolva
char fel10  ='s' ; // +10  leptetes bekapcsolva
char fel100 ='w' ; // +100 leptetes bekapcsolva
char le1    ='y' ; // -1   leptetes bekapcsolva
char le10   ='a' ; // -10  leptetes bekapcsolva
char le100  ='q' ; // -100 leptetes bekapcsolva

char felk1   ='v' ; // +1   leptetes kikapcsolva
char felk10  ='f' ; // +10  leptetes kikapcsolva
char felk100 ='r' ; // +100 leptetes kikapcsolva
char lek1    ='c' ; // -1   leptetes kikapcsolva
char lek10   ='d' ; // -10  leptetes kikapcsolva
char lek100  ='e' ; // -100 leptetes kikapcsolva

void setup(){
   Serial.begin(9600); 
  pinMode(13, OUTPUT);
  pinMode(12, OUTPUT); 
  pinMode(11, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(4, OUTPUT);
   Serial.println("Start Be=500 ms  Ki=500 ms " ); 
}

void loop() {
  if (Serial.available() > 0) {
    // var adat feldolgozasra?
    inByte = Serial.read();
      // 1 byte beolvasasa
    delayMicroseconds(100);
      // 100 ms szunet
    adatjott++;
    //szamlalo novelese
  if (inByte == fel1) {inputVariablehi +1 ;}         // bekapcsolt allapot novelese
  if (inByte == fel10) {inputVariablehi +10 ;}       //
  if (inByte == fel100) {inputVariablehi +100 ;}     // 
  if (inByte == le1) {inputVariablehi -1 ;}         // bekapcsolt allapot csokkentese
  if (inByte == le10) {inputVariablehi -10 ;}        //
  if (inByte == le100) {inputVariablehi -100 ;}       //
  
  if (inByte == felk1) {inputVariablelo  +1 ;}       // kikapcsolt allapot novelese
  if (inByte == felk10) {inputVariablelo +10 ;}      //
  if (inByte == felk100) {inputVariablelo +100 ;}    //
  if (inByte == felk1) {inputVariablelo -1 ;}        // kikapcsolt allapot csokkentese
  if (inByte == felk10) {inputVariablelo -10 ;}      //
  if (inByte == felk100) {inputVariablelo -100;}     //
    
    
  }
  Serial.print("Eddig jott: ");
    Serial.println(adatjott, DEC);
    
   digitalWrite(13, HIGH);
   delayMicroseconds(inputVariablehi);
   digitalWrite(13, LOW);
   delayMicroseconds(inputVariablelo);

   digitalWrite(12, HIGH);
   delayMicroseconds(inputVariablehi);
   digitalWrite(12, LOW);
   delayMicroseconds(inputVariablelo);

   digitalWrite(11, HIGH);
   delayMicroseconds(inputVariablehi);
   digitalWrite(11, LOW);
   delayMicroseconds(inputVariablelo);

   digitalWrite(10, HIGH);
   delayMicroseconds(inputVariablehi);
   digitalWrite(10, LOW);
   delayMicroseconds(inputVariablelo);
   
   digitalWrite(9, HIGH);
   delayMicroseconds(inputVariablehi);
   digitalWrite(9, LOW);
   delayMicroseconds(inputVariablelo);
   
   digitalWrite(8, HIGH);
   delayMicroseconds(inputVariablehi);
   digitalWrite(8, LOW);
   delayMicroseconds(inputVariablelo);
   
   digitalWrite(7, HIGH);
   delayMicroseconds(inputVariablehi);
   digitalWrite(7, LOW);
   delayMicroseconds(inputVariablelo);
   
   digitalWrite(6, HIGH);
   delayMicroseconds(inputVariablehi);
   digitalWrite(6, LOW);
   delayMicroseconds(inputVariablelo);
   
   digitalWrite(5, HIGH);
   delayMicroseconds(inputVariablehi);
   digitalWrite(5, LOW);
   delayMicroseconds(inputVariablelo);
   
   digitalWrite(4, HIGH);
   delayMicroseconds(inputVariablehi);
   digitalWrite(4, LOW);
   delayMicroseconds(inputVariablelo);
   
   
  
  
}
Ja és kösz ezt az infót !!!
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: AVR kezdőnek

Hozzászólás Szerző: Robert »

A kódban van 15 változó. Melyik érték, mire nem változik?
Gyuresz
Újonc
Újonc
Hozzászólások: 13
Csatlakozott: 2013. július 13. szombat, 18:34

Re: AVR kezdőnek

Hozzászólás Szerző: Gyuresz »

A kód alapból egy futófény kell legyen 10 kimenetlen, a betük a ledek bekapcsolási, illetve kikapcsolási idejéhez kellene hozzá ill kivegyenek belőlle.
A ledek bekapcsolását adó kezdő értékekhez : y= -1 , x=+1 míg s=+10 a=-10, és w=+100 q=-100 kellen kivonjon vagy hozzáadjon.
A ledek kikapcsolt állapotát meg a c=-1 v=+1 d=-10 f=+10 e=-100 r= +100 kellene variálja.
Vagyis a megadott kezdeti értéket mindig növelje vagy csökkentse .

A futófény az működik, szalad is csak az értékeket nem változtatja. Nem tudom hol a hiba.
Kicsit nagy a kód meg szakszemmel nézve zavaros,lehet (memóriapazarlás) de csak most kezdtem az egészet, a próbálkozáson vagyok.

Ja meg arra nem jövök rá hogyan oldható meg hogy az aktuális értéket nekem visszaküldje ami a szünet ill a bekapcsolási érték a soros porton ... vagyis az értékét ...?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: AVR kezdőnek

Hozzászólás Szerző: Robert »

inbyte (azaz amit beolvasol): Integer.
Amivel összehasonlítod: Char

Soha nem lesz azonos!
Gyuresz
Újonc
Újonc
Hozzászólások: 13
Csatlakozott: 2013. július 13. szombat, 18:34

Re: AVR kezdőnek

Hozzászólás Szerző: Gyuresz »

ez nem azt jelenti hogy : x a parancsgombom aminek +1 az értéke, az s nek meg +10 ? és ha ezek megérkeznek akkor a kezdeti értékekhez ezek adódnak vbvagy vonódnak ki , vagy akkor nem értem mi van ( le vagyok fárradva) ...

Kód: Egész kijelölése

char fel1   ='x' ; // +1   leptetes bekapcsolva
char fel10  ='s' ; // +10  leptetes bekapcsolva
char fel100 ='w' ; // +100 leptetes bekapcsolva
char le1    ='y' ; // -1   leptetes bekapcsolva
char le10   ='a' ; // -10  leptetes bekapcsolva
char le100  ='q' ; // -100 leptetes bekapcsolva


if (inByte == fel1) {inputVariablehi +1 ;}         // bekapcsolt allapot novelese
  if (inByte == fel10) {inputVariablehi +10 ;}       //
  if (inByte == fel100) {inputVariablehi +100 ;}     // 
  if (inByte == le1) {inputVariablehi -1 ;}         // bekapcsolt allapot csokkentese
  if (inByte == le10) {inputVariablehi -10 ;}        //
  if (inByte == le100) {inputVariablehi -100 ;}       //
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Soros port kezelése - összehasonlítás

Hozzászólás Szerző: Robert »

Sorosporton irasd ki az értékeidet HEX-ként. Rögtön meglátod hol a hiba...
Gyuresz
Újonc
Újonc
Hozzászólások: 13
Csatlakozott: 2013. július 13. szombat, 18:34

Re: Soros port kezelése - összehasonlítás

Hozzászólás Szerző: Gyuresz »

Akkor sem jértem ha fegyvert tesznek a fejemhez... Egy másik Működő program után csináltam . Annyi, hogy ott be és kikapcsol egy ledet egyszer kis betű egyszer nagy betű... it meg a karaskter mellé ha jól csináltam hozzárendeltem egy számot amit a szünte ill kitöltési időhöz kellene hozzáadjon.


Inkább hagyjuk... annyira még nem tartok hogy egy hex után rájöjjek mi a hibám... meg hogy kiirassam hex ben az sem megy még... :)
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Soros port kezelése - összehasonlítás

Hozzászólás Szerző: Robert »

Csak azonos változótípust hasonlíthatsz össze!

Char <> Int!
Gyuresz
Újonc
Újonc
Hozzászólások: 13
Csatlakozott: 2013. július 13. szombat, 18:34

Re: Soros port kezelése - összehasonlítás

Hozzászólás Szerző: Gyuresz »

Akkor légysz írd már le hogy hogy tudom elérni hogy egy karakter beküldésével a karakterhez hozzárendelt értéket hozzáadassam valamihez
_hori
DrótVégénSzéndarab
Hozzászólások: 26
Csatlakozott: 2013. április 27. szombat, 18:54

Re: Soros port kezelése - összehasonlítás

Hozzászólás Szerző: _hori »

Kód: Egész kijelölése

char inByte =0;
...
    inByte = (char)Serial.read();
...
Ennyi! (Ha egyébként jó a program...)
Szerintem túl bonyolult dologra gondoltál, meg az erdő és a fa esete forog fenn.
:)
Gyuresz
Újonc
Újonc
Hozzászólások: 13
Csatlakozott: 2013. július 13. szombat, 18:34

Re: Soros port kezelése - összehasonlítás

Hozzászólás Szerző: Gyuresz »

Ismét lenne egy problémám...
Hogyan lehetne egy több számjegyü számból kiemelni az egyik számjegyet?
Az elképzelés amit meg kellene valósítani:
van egy számláló ami pörög...
jön egy külső jel ami hatására a számláló értéke leolvasódik. pl az eredmény 125432
ebből a számból nekem kellene pl. jobbról a 4-ik szám értéke vagyis az "5" .
Ezt hogyan lehetne elérni? ... nem igazán jövök rá a nyitjára...
Válasz küldése