 |

|
|
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 25, 06:34. Visos datos yra GMT + 2 valandos.
|
|
|
 |
Forumas » Mikrovaldikliai » Mygtuko paspaudimu delsimo trukmes keitimas
|
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
|
|
|
 |
 |
Mygtuko paspaudimu delsimo trukmes keitimas |
Parašytas: 2013 03 23, 13:36 |
|
|
|
|
| Kodas: |
#include <avr/io.h>
#include <util/delay.h>
unsigned char a[10]= {18, 250, 84, 112, 184, 49, 17, 122, 16, 48};
volatile unsigned char sk;
int main(int sk)
{
DDRD=0xFF;
DDRC=0x00;
PORTC=0xFF;
sk=0;
while(1){
if(!(PINC&1) || sk == 9){ //tikrina ar nepaspaustas mygtukas ir/ar nepasiekta sk9
sk=0;
}
else {
sk++;
}
PORTD=a[(sk)];
_delay_ms(1000);
}
} |
Nu turi suktis tik čia jis automatiškai nusinulins jei bus 9 ir jei bus paspasustas mygtukas. Aš prieš tai nemačiau, kad padaryta PORTC kaip išėjimas.
Pasiskaityk čia labai pora sakinių viskas aprašyta |
|
_________________ Bandau praplėst žinias |
|
|
|
 |
 |
Mygtuko paspaudimu delsimo trukmes keitimas |
Parašytas: 2013 03 23, 14:11 |
|
|
|
|
| Kodas: |
#include <avr/io.h>
#include <util/delay.h>
unsigned char a[10]= {18, 250, 84, 112, 184, 49, 17, 122, 16, 48};
volatile unsigned char sk;
int main(void){
DDRD=255;
DDRB=0;
PORTB=255;
sk=0;
while(1){
if (sk<9){
sk++;
}
else if(sk=9){
sk=9;
}
else{
sk=0;
}
PORTD=a[(sk)];
_delay_ms(1000);
}
if(!(PINB&255)){
sk=0;
}
return 0;
}; |
Pakeičiau ant B kojų nes gal C jau nupuvusios (nutrumpintos ). Tas pats net nereaguoja. Pamatuoju mygtuką, kai išjungtas 5v rodo, kai įjungtas 0v. Kažkaip atvirkščiai... Taip turi būti? |
|
|
|
|
|
 |
 |
Mygtuko paspaudimu delsimo trukmes keitimas |
Parašytas: 2013 03 23, 14:29 |
|
|
|
|
| Ugniues rašo: |
Pakeičiau ant B kojų nes gal C jau nupuvusios (nutrumpintos ). Tas pats net nereaguoja. Pamatuoju mygtuką, kai išjungtas 5v rodo, kai įjungtas 0v. Kažkaip atvirkščiai... Taip turi būti? |
aš nesuprantu ką tu čia makaloji su tuo kodu.
| Kodas: |
#include <avr/io.h>
#include <util/delay.h>
unsigned char a[10]= {18, 250, 84, 112, 184, 49, 17, 122, 16, 48};
volatile unsigned char sk;
int main(void){
DDRD=255;
DDRB=0;
PORTB=255;
sk=0;
while(1){
if (sk<9){
sk++;
}
else if(sk=9){
sk=9;
}
else if(!(PINB&1){
sk=0;
}
PORTD=a[(sk)];
_delay_ms(1000);
}
return 0;
}; |
P.s. nežiūrėjau ar kur kokių skliaustų netrūksta |
|
_________________ Bandau praplėst žinias |
|
|
|
 |
Mygtuko paspaudimu delsimo trukmes keitimas |
Parašytas: 2013 03 23, 18:03 |
|
|
|
|
| "DDRB=0; " šito deklaruoti man atrodo nereikia, bet nei su, nei be neveikia. Tik po minutės mygtuko minkymo vieną karta pradėjo vėl skaičiuoti iš naujo.. |
|
|
|
|
|
 |
Mygtuko paspaudimu delsimo trukmes keitimas |
Parašytas: 2013 03 23, 19:18 |
|
|
|
|
aš jau nebesuprantu ko tu nori iš tos programos..
va: skaičiuoja iki 9 ir sustoja kai jau suskaičiuoja iki 9 paspaudus mygtuką nusirestartuoja kokio tau dar reikia kodo?
| Kodas: |
#include <avr/io.h>
#include <util/delay.h>
unsigned char a[10]= {18, 250, 84, 112, 184, 49, 17, 122, 16, 48};
volatile unsigned char sk;
int main(void){
DDRD=255;
DDRB=0;
PORTB=255;
sk=0;
while(1){
if (sk<9){
sk++;
_delay_ms(1000);
}
else if(sk=9){
sk=9;
if(!(PINB&1)){
sk=0;}}
PORTD=a[(sk)];
}
return 0;
};
|
|
|
_________________ Bandau praplėst žinias |
|
|
|
 |
 |
Mygtuko paspaudimu delsimo trukmes keitimas |
Parašytas: 2013 03 24, 11:32 |
|
|
|
|
Dabar bandau mokintis su mygtukais:
| Kodas: |
#include <avr/io.h>
#include <util/delay.h>
unsigned char a[10]= {18, 250, 84, 112, 184, 49, 17, 122, 16, 48};
volatile unsigned char sk;
int main(void){
DDRD=255;
DDRB=0;
PORTB=255;
sk=0;
while(1){
if (!(PINB&1)){
sk++;
_delay_ms(500);
}
if (!(PINB&1) || sk==9){
sk=0;
}
if (!(PINB&2) || sk==0){
sk=9;
}
if(!(PINB&2)){
sk--;
_delay_ms(500);
}
PORTD=a[(sk)];
}
return 0;
};
|
Kai pasiekia 9 ir paspaudi mygtuką į priekį turi nusimušt į 0, o kai yra nulis ir paspaudi atgal turi būti 9. Iš šitos programos gaunasi tik tai, kad mygtukai sunkiai reaguoja numušinėja skaičiai, kada nori tada 0 mėto Gal žinot kas blogai gali būti? Ačiū. |
|
|
|
|
|
 |
 |
Mygtuko paspaudimu delsimo trukmes keitimas |
Parašytas: 2013 03 24, 13:29 |
|
|
|
|
žinok, neatsakau kad čia geras kodas, bet vienas iš variantų toks. Gal būt galima būtų ir kitaip perdaryt
| Kodas: |
#include <avr/io.h>
#include <util/delay.h>
unsigned char a[10]= {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};
volatile unsigned char sk;
int main(int i, int sk){
DDRD=255;
DDRB=0;
PORTB=255;
sk=0;
while(1){
PORTD=a[sk];
if ((sk==9) && (!(PINB&2))) {
mazinam();
sk=0;
}
else if((sk==0) && (!(PINB&1))){
didinam();
sk=9;
}
}
}
void mazinam(void){
int i;
for(i=9; i>0; i--){
PORTD=a[i];
_delay_ms(500);
}
}
void didinam(void){
int i;
for(i=0; i<9; i++){
PORTD=a[i];
_delay_ms(500);
}
} |
KLAUSIMAS: O tu savo kodą skaitai ir ar truputį bent supranti? Tu gi nusistatęs, kad arba paspaudis mygtuką, arba kai pasiekiama tam tikra reikšmė nusinulintų arba pasidarytų 9..
P.S. kartojuos dar kartą, nežinau ar tai pats trumpiausias kodas tokiam dalykui, bet tingiu skut galvą, pats pasigalvok kitą kartą [/quote] |
|
_________________ Bandau praplėst žinias |
|
|
|
 |
 |
Mygtuko paspaudimu delsimo trukmes keitimas |
Parašytas: 2013 03 24, 13:36 |
|
|
|
|
| Ugniues rašo: |
| atsiprašau, sumaišiau || ir &&... |
ai dar, a masyvo skaičius pakeičiau netyčia, susigražink atgal  |
|
_________________ Bandau praplėst žinias |
|
|
|
 |
Mygtuko paspaudimu delsimo trukmes keitimas |
Parašytas: 2013 03 25, 13:05 |
|
|
|
|
Ką galit pasiūlyti išmokti dar? Ledus blyksint mokų, su displėjum žaisti moku, su dvejais irgi bandžiau, mygtukai aiškus taip pat. Vo šįryt pabandžiau keypad'ą prisijungt, visiškai niekas neaišku... Pažiūrėjau į pavyzdinį kodą visokie &, #define iš kažkur ištraukti... nieko nesupratau...
Gal kažką su lcd, bet irgi ten tiek te suprantu, jeigu ir bandyt tai aklai nieko nesuprantant nėr beveik naudos. |
|
|
|
|
|
|
 |
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 |
|

|
 |