 |

|
|
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 2025 12 13, 04:57. Visos datos yra GMT + 2 valandos.
|
|
|
 |
Forumas » Mikrovaldikliai » neaiskumas su while ciklu
|
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
|
|
|
 |
 |
neaiskumas su while ciklu |
Parašytas: 2009 06 21, 21:17 |
|
|
|
|
rasau tokia programa ir susiduriau su viena beda. cia kodo gabalas
| Kodas: |
while(1)
{
while((PINB^1)|(PINB^2)|(PINB^4))
{}
if(!(PINB&1))
{
v++;
while(!(PINB&1))
{}
}
if(!(PINB&2))
{
m++;
while(!(PINB&2))
{}
}
if(!(PINB&4))
{
s++;
while(!(PINB&4))
{}
}
LCDWriteIntXY(0,0,v,2);
LCDWriteStringXY(2,0,":");
LCDWriteIntXY(3,0,m,2);
LCDWriteStringXY(5,0,":");
LCDWriteIntXY(6,0,s,2);
} |
while((PINB^1)|(PINB^2)|(PINB^4)) cia turetu pagal mane laukti tol kol bus paspaustas mygtukas is triju kurie prijungti prie PB0,PB1 irPB2 kai paspaustas mygtukas yra turetu vykdyti programa toliau is nustatyti kuris mygtukas paspaustas yra ir poto isvesti i LCD 2X16 akrana, bet kiek spaudyciau as tuos mygtukus man vistiek nulius rodo ir nezinau kur klaida, nes pagal mane viskas turetu buti gerai |
|
|
|
|
|
 |
 |
neaiskumas su while ciklu |
Parašytas: 2009 06 22, 08:54 |
|
|
|
|
kažkas panašaus:
| Kodas: |
#define bit_set(PIN,BIT) (PIN &(1 << BIT))
#define bit_clr(PIN,BIT) (!(PIN &(1 << BIT)))
unsigned char m1, m2, m3;
//***************************************************
void knopke(void){
LCDWriteIntXY(0,0,m1,2);
LCDWriteStringXY(2,0,":");
LCDWriteIntXY(3,0,m2,2);
LCDWriteStringXY(5,0,":");
LCDWriteIntXY(6,0,m3,2);
}
//***************************************************
void main(void){
DDRB = 0xF8; // PB0-PB2 - iejimai
PORTB =0x07; //ijungia rez. ant PB0-PB2
while(1){
if(bit_clr(PINB,0)){
m1++; // kiek kartu 1 knp. paspausta
knopke();
delay_ms(20); //pauze 20 mS
while(bit_clr(PINB,0));
delay_ms(20);
}
if(bit_clr(PINB,1)){
m2++;
knopke();
delay_ms(20);
while(bit_clr(PINB,1));
delay_ms(20);
}
if(bit_clr(PINB,2)){
m3++;
knopke();
delay_ms(20);
while(bit_clr(PINB,2));
delay_ms(20);
}
}
}
|
|
|
|
|
|
|
 |
 |
neaiskumas su while ciklu |
Parašytas: 2009 06 22, 14:44 |
|
|
|
|
na jo panasiai ko man reikia dekui.
Taciau nesuprantu kodel mano tas while ciklas su isskirtiniu ARBA neveikia.
Turetu buti kol mygtukas nepaspaustas i tai gauname while(0^1)=while(1) ir gaunas begalinis ciklas. kada mygtukas paspaustas gaunam while(1^1)=while(0) ir ciklas baigtas ir keliaujam toliau, bet programa arba uzsikerta toje vietoje arba nieko nedaro  |
|
|
|
|
|
 |
 |
neaiskumas su while ciklu |
Parašytas: 2010 04 20, 23:53 |
|
|
|
|
na pameginau susikompiliuot sita koda, apkarpiau tiesiog pazet veikima, bet kaip supratau cia spaudinejant mygtuka turetu kisti m1 reiksme kaskart po +1 ir kitimas matytis lcd ekrane. Bet sujungus viska veikia bet tik reiksme pasikeicia nuo 0 iki 1 ir viskas toliau spaudinek nespaudinejas rodos ta pati vienate.
Kas gali but blogai ?
| Kodas: |
#define bit_set(PIN,BIT) (PIN &(1 << BIT))
#define bit_clr(PIN,BIT) (!(PIN &(1 << BIT)))
unsigned char m1;
//***************************************************
void knopke(void){
LCDWriteIntXY(0,0,m1,2);
LCDWriteStringXY(2,0,":");
}
//***************************************************
void main(void){
DDRB = 0xF8; // PB0-PB2 - iejimai
PORTB =0x07; //ijungia rez. ant PB0-PB2
while(1){
if(bit_clr(PINB,0)){
m1++; // kiek kartu 1 knp. paspausta
knopke();
delay_ms(20); //pauze 20 mS
while(bit_clr(PINB,0));
delay_ms(20);
}
}
}
|
|
|
|
|
|
|
 |
 |
neaiskumas su while ciklu |
Parašytas: 2010 04 21, 01:08 |
|
|
|
|
oho, is kokiu laiku cia mano kodas dar atgaivintas seip tu naudoji simuliatoriu ar realybeje? |
|
_________________ Diplomas tik etikete ant konservų dėžutes. O kas slepiasi dėžutėje neaišku. |
|
|
|
 |
neaiskumas su while ciklu |
Parašytas: 2010 04 21, 08:13 |
|
|
|
|
| Manau, viskas uzstringa tavo antrajame while...Paspaudi knopke, ant knopkes pino 0, vykdo m++,spausdina, ir nespejus atleist knopkes viskas uzsisuka antrame while, kuris nieko nedaro... |
|
|
|
|
|
 |
 |
neaiskumas su while ciklu |
Parašytas: 2010 04 21, 08:19 |
|
|
|
|
| zingo rašo: |
| Meginau ir simuliatoriui ir realybej tas pats (think) |
stai tau visa programa isbandyta ir dirba neprieskaitingai
| Kodas: |
#include <avr/io.h>
#include <avr/delay.h>
#include "lcd.h"
#define bit_set(PIN,BIT) (PIN &(1 << BIT))
#define bit_clr(PIN,BIT) (!(PIN &(1 << BIT)))
unsigned int m1=0;
//***************************************************
void knopke(void){
LCDWriteIntXY(0,0,m1,2);
}
//***************************************************
void main()
{
DDRB |=(1<<PB0) ;
PORTB |=(1<<PB0);
LCDInit(LS_ULINE);
LCDWriteIntXY(0,0,m1,2);
while(1){
if(bit_clr(PINB,0)){
m1++;
knopke();
_delay_ms(20);
while(bit_clr(PINB,0));
_delay_ms(20);
}
}
}
|
|
|
_________________ Diplomas tik etikete ant konservų dėžutes. O kas slepiasi dėžutėje neaišku. |
|
|
|
 |
 |
neaiskumas su while ciklu |
Parašytas: 2010 04 21, 08:24 |
|
|
|
|
| Edzma rašo: |
| Manau, viskas uzstringa tavo antrajame while...Paspaudi knopke, ant knopkes pino 0, vykdo m++,spausdina, ir nespejus atleist knopkes viskas uzsisuka antrame while, kuris nieko nedaro... |
Antras ciklas laukia kada bus atleistas mygtukas nes jeigu tu ji uzspausi ir nebus tau laukimo kada bus atleistas mygtukas tai jis tau tiek m++ prisuks, kad bus paspaudi viena karta o prasuka tau 50 kartu. beto realybeje jeigu projektuosi tai turek omenyje, kad tokiose mechaniniuose mygtukuose kuris yra prijungtas ne prie induktyvines ar talpines apkrovos, tai pasireiskia toks labai salutinis reiskinys kaip debaunce placiau apie ji gali paskaityti cia http://www.ganssle.com/debouncing.htm |
|
_________________ Diplomas tik etikete ant konservų dėžutes. O kas slepiasi dėžutėje neaišku. |
|
|
|
 |
 |
neaiskumas su while ciklu |
Parašytas: 2010 04 21, 08:50 |
|
|
|
|
Bet tai IF ir WHILE tavo kode apibudina ta pacia knopkes busena.. Ai...supratau....zalias as.  |
|
|
|
|
|
 |
neaiskumas su while ciklu |
Parašytas: 2010 04 21, 12:45 |
|
|
|
|
| Citata: |
stai tau visa programa isbandyta ir dirba neprieskaitingai  |
Na va dabar veikia. Ir tiek nedaug tereikejo pakeist nemaciau :/
Btw dekui uz programa  |
|
|
|
|
|
 |
neaiskumas su while ciklu |
Parašytas: 2010 04 29, 16:43 |
|
|
|
|
| O ar sunku butu perrasyt programa, kad jaigu vietoj to mygtuko kaskart i koja padavus +5V pridedinetu reiksme pvz m++ ? arba kol yra paduoti 5V jis vygdo kazkokia komanda? |
|
|
|
|
|
 |
neaiskumas su while ciklu |
Parašytas: 2010 05 01, 11:20 |
|
|
|
|
| zingo rašo: |
| O ar sunku butu perrasyt programa, kad jaigu vietoj to mygtuko kaskart i koja padavus +5V pridedinetu reiksme pvz m++ ? arba kol yra paduoti 5V jis vygdo kazkokia komanda? |
Nesunku, dadedi komandu kokiu tau reikia ir viskas, kas liecia del tu +5v
tai koks skirtumas ar su mygtuku ar kaip kitaip paduosi. |
|
_________________ Kas yra virš drąsos? Bėgti prieš traukinį ir šaukti suvažinesiu...! |
|
|
|
|
 |
Google paieška forume |
|
|
 |
Naujos temos forume |
|
 |
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 |
 |
Must have farming mods
Farming simulator modhub,
Best farming simulator mods |
|

|
 |