Elektronika.lt
 2026 m. vasario 27 d. Projektas | Reklama | Žinokite | Klausimai | Prisidėkite | Atsiliepimai | Kontaktai
Paieška portale
EN Facebook RSS

 Kas naujo  Katalogas  Parduotuvės  Forumas  Tinklaraščiai
 Pirmas puslapisSąrašas
 Forumas / + pokalbiai
 - Paieška forume
 - D.U.K. / Forumo taisyklės
 - Narių sąrašas
 - Registruotis
 - Prisijungti

Elektronika.lt portalo forumas

Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo. Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.

Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius, kurie nesilaiko forumo taisyklių. Pastebėjus nusižengimus, prašome pranešti.

Dabar yra 2026 02 27, 06:59. Visos datos yra GMT + 2 valandos.
 Forumas » Mikrovaldikliai » kiek kartu nuspaustas mygtukas?
Jūs negalite rašyti naujų pranešimų į šį forumą
Jūs negalite atsakinėti į pranešimus šiame forume
Jūs negalite redaguoti savo pranešimų šiame forume
Jūs negalite ištrinti savo pranešimų šiame forume
Jūs negalite dalyvauti apklausose šiame forume
 
  
Puslapis 22
Pereiti prie Atgal  1, 2
Pradėti naują temą  Atsakyti į pranešimą Rodyti ankstesnį pranešimą :: Rodyti kitą pranešimą 
 kiek kartu nuspaustas mygtukas?
PranešimasParašytas: 2014 02 18, 22:07 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Socrates
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Edzma rašo:
Panasios problemos ...Kaip tai gali buti ?
Kodas:

struct
{
   ...........................
   unsigned int liestas    :1;
  ...........................
  ............................
}flag;
...............
.........
.............
void Touch()
{
   unsigned int a;
   ....
     if(a < 200 && flag.liestas == 0)   //a = ADC reiksme
      {
        ...                      // cia turetu but uzsukta viena kart
        ...                      // kol nebus paleistas
        flag.liestas =1;
      }
     else {flag.liestas = 0;}
}

Problema ta, kad prilietus fiksuojamas ne vienas prisilietimas, bet pastoviai sukasi....


Neaisku nei kaip ir kada Touch() kvieciamas, nei kaip ir kada ADC konversija baigiasi...
 kiek kartu nuspaustas mygtukas?
PranešimasParašytas: 2014 02 18, 22:20 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Edzma
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Touch() kvieciamas kaskart apsisukus ciklui while(1), o adcRead funkcija yra pacioje Touch()..
adc konversija vykdoma funkcijoje 1 karta, kad pamatyti ,ar yra prisilietimas...jei ne -gryztam i main, jei prisiliesta- tada vyksta paeiliui dar 2 konversijos koordinatems nustatyt...
Siaip viskas kuo puikiausiai, bet nervina, kad prisilietus fiksuojamas ne vienas prisilietimas, bet ciklinasi..
 kiek kartu nuspaustas mygtukas?
PranešimasParašytas: 2014 02 18, 22:27 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Edzma
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
jei bus aiskiau, tai...
Kodas:

unsigned int adc_read(unsigned char adc_input)
{
   ADMUX = adc_input|(ADC_VRef & 0xFF);
   ADCSRA= 0x87;
   _delay_us(10);
   ADCSRA |=0x40;
   while ((ADCSRA & 0x10)==0);
   ADCSRA |=0x10;
   return ADCW;
}
void Touch()   

 unsigned int a = 0;
   Touch_DDR  |= (1<<X_plus);Touch_DDR  |= (1<<X_minus);   
   Touch_PORT &=~(1<<X_plus);Touch_PORT &=~(1<<X_minus); 
   Touch_DDR  &=~(1<<Y_plus);                             
   Touch_PORT |= (1<<Y_minus);
   a = adc_read(adc_Xchannel);

if (a > 900) {flag.paliestas = 0; x_pix=0; y_pix=0; return;}
if (a < 200 && flag.paliestas == 0)                           
  {
    Touch_DDR &=~ 0x0F;                     //touch porto resetas
    Touch_DDR  |= (1<<Y_minus)|(1<<Y_plus);
    Touch_PORT |= (1<<Y_plus);             
    Touch_PORT &=~(1<<Y_minus);             
    _delay_ms(1);
   y_coord = adc_read(adc_Ychannel);
   if((y_coord>y_min)&&(y_coord<y_max))             // jei telpam i ekrana....
      {y_pix =(y_coord-y_min)*((y_rez*100)/(y_max-y_min))/100;}  //adc konversija i pix
   
   Touch_DDR &=~ 0x0F;                       //touch porto resetas
    Touch_DDR  |= (1<<X_plus)|(1<<X_minus);                     
    Touch_PORT |= (1<<X_plus);               
    Touch_PORT &=~(1<<X_minus);             
    _delay_ms(1);
   x_coord = adc_read(adc_Xchannel);
    if((x_coord>x_min)&&(x_coord<x_max))              // jei telpam i ekrana....
      {x_pix =(x_coord-x_min)*((x_rez*100)/(x_max-x_min))/100;} //adc konversija i pix
    flag.paliestas = 1;
  }
}
 kiek kartu nuspaustas mygtukas?
PranešimasParašytas: 2014 02 18, 23:03 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Socrates
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Kaip struktura inicializuojama? Perdaug i koda nesigilinau, o tai pastebin tam labiau tiktu nei cia.
 kiek kartu nuspaustas mygtukas?
PranešimasParašytas: 2014 02 18, 23:09 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Edzma
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
ten bitu laukas...flagams...
Kodas:

struct
{
   unsigned  timeset          :1;
   unsigned  paliestas        :1;
   unsigned  paleistas        :1;
   unsigned  first_show_set   :1;
   unsigned  read_temp        :2;
   unsigned  septintas        :1;
   unsigned  astuntas         :1;
}flag;
 kiek kartu nuspaustas mygtukas?
PranešimasParašytas: 2014 02 18, 23:19 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Socrates
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Edzma rašo:
ten bitu laukas...flagams...
Kodas:

struct
{
   unsigned  timeset          :1;
   unsigned  paliestas        :1;
   unsigned  paleistas        :1;
   unsigned  first_show_set   :1;
   unsigned  read_temp        :2;
   unsigned  septintas        :1;
   unsigned  astuntas         :1;
}flag;


As tiesa sakant nezinau ka reiskia gale tie :1 arba :2. Bet anyway, cia tik aprasyta struktura, kaip ji inicializuojama?

Jei nera, tai tu kiekviena karta nuskaitai vejus is nezinomo atminties regiono, ko pasekoje tavo flagas igauna vis kitokias reiksmes.
main'e pries while() daryk alokacija:
flag = malloc(sizeof(flag));
 kiek kartu nuspaustas mygtukas?
PranešimasParašytas: 2014 02 18, 23:24 Pranešti apie taisyklių pažeidimą Atsakyti su citata
AlgisL
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
malloc() jau tikrai nereikia, uztektu:
flag f;
ir kreiptis f.xxx
 kiek kartu nuspaustas mygtukas?
PranešimasParašytas: 2014 02 18, 23:29 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Edzma
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Tokia ir inicializacija, kaip ir bet kokio kintamojo.... a, beje, dariau tai pries main()...kaip ir globalus tie flagiukai...
:1 ar :3 reiskia, kiek bitu atseikejama tam flagui...jei :3 tai flagas gali igaut reiksmes 7,6,5,4,3,2,1,0.....jei :2 ,tai 3,2,1,0 jei :1 , tai tik 1 ar 0..
 kiek kartu nuspaustas mygtukas?
PranešimasParašytas: 2014 02 18, 23:56 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Socrates
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Edzma rašo:
Tokia ir inicializacija, kaip ir bet kokio kintamojo.... a, beje, dariau tai pries main()...kaip ir globalus tie flagiukai...
:1 ar :3 reiskia, kiek bitu atseikejama tam flagui...jei :3 tai flagas gali igaut reiksmes 7,6,5,4,3,2,1,0.....jei :2 ,tai 3,2,1,0 jei :1 , tai tik 1 ar 0..


Kazkas baisiai gudraus, bet nematau kam to reiktu... Reik suprast, kad tokiu atveju atmintyje uzima maziau vietos? Gali patikrint kompiliacijos rezultatus su tokiu aprasymu ir kita varianta ivardinant visus strukturos kintamuosius unsigned char'ais?

AlgisL rašo:
malloc() jau tikrai nereikia, uztektu:
flag f;
ir kreiptis f.xxx


Situ atveju gal ir ne, bet iprastai kai naudoji strukturas, tai alokuoji su malloc() ir paskui gali islaisvint su free().
Pradėti naują temą  Atsakyti į pranešimą Pereiti prie Atgal  1, 2
 
Forumo sistema: phpBB
 „Google“ paieška forume
 Kas naujesnio?
 Naujos temos forume

Global electronic components distributor – Allicdata Electronics

Electronic component supply – „Eurodis Electronics“

LOKMITA – įvairi matavimo, testavimo, analizės ir litavimo produkcija

Full feature custom PCB prototype service

Technologijos.lt

Mokslo festivalis „Erdvėlaivis Žemė

LTV.LT - lietuviškų tinklalapių vitrina

„Konstanta 42“

„Mokslo sriuba“

www.matuok.lt - Interneto spartos matavimo sistema

Programuotojas Tautvydas – interneto svetainių-sistemų kūrimas

PriedaiMobiliems.lt – telefonų priedai ir aksesuarai

Draugiškas internetas

FS25 Tractors
Farming Simulator 25 Mods, FS25 Maps, FS25 Trucks
ETS2 Mods
ETS2 Trucks, ETS2 Bus, Euro Truck Simulator 2 Mods
FS22 Tractors
Farming Simulator 22 Mods, FS22 Maps, FS25 Mods
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija
FS25 Mods
FS25 Maps, FS25 Cheats, FS25 Install Mods
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps
ATS Trailers
American Truck Simulator Mods, ATS Trucks, ATS Maps
RDR2 Mods
Euro Truck Simulator 2 Mods, WOT Mods, Assetto Corsa Rally Mods
Reklama
‡ 1999– © Elektronika.lt | Autoriaus teisės | Privatumo politika | Atsakomybės ribojimas | Turinys | Reklama | Kontaktai LTV.LT - lietuviškų tinklalapių vitrina
ScriptHookV, GTA 5 Mods, GTA 5 Map Mods
gta5mod.net
„MokslasPlius“ – mokslui skirtų svetainių portalas
www.mokslasplius.lt
Būk saugus
elektroninėje erdvėje

www.esaugumas.lt
LTV.LT – lietuviškų tinklalapių vitrina
www.ltv.lt/technologijos/
Elektroninių parduotuvių optimizavimas „Google“ paieškos sistemai
www.seospiders.lt
Mokslo festivalis „Erdvėlaivis žemė“
www.mokslofestivalis.eu
Reklama


Reklama