 |

|
|
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 22, 07:02. Visos datos yra GMT + 2 valandos.
|
|
|
 |
Forumas » Mikrovaldikliai » Programavimas: uzveskite ant kelio :/
|
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 3 iš 3 Pereiti prie Atgal 1, 2, 3 |
|
 |
Programavimas: uzveskite ant kelio :/ |
Parašytas: 2008 07 27, 16:47 |
|
|
|
|
kaip sukrasti kur prirasyti?
tau reikia is kazkur pirma paimti ta skaiciu
tai kazkurioje vietoje reikia istatyti klaviaturos nuskaityma ar kazka tokio.
beje jei nori platesnio diapazono siulau daryti taip:
PORTB=9;//1001
velinam(T/2+b);
PORTB=12;//1100
velinam(T/2-b);
jei pdarysi sitaip galesi fazius skirtuma reguliuoti ne 90 o 180 laipsniu |
|
|
|
|
|
 |
Programavimas: uzveskite ant kelio :/ |
Parašytas: 2008 07 27, 17:42 |
|
|
|
|
nu va tas ir neaišku kaip ta klaviaturos (šio atveju 4 mygtuku) nuskaityma padaryt? Pvz. jeigu paspaudi mygtuka didinimo tai b=b+1; o b pradine reiksme parasyta programos pradžioje.
P.S. nepykit už mano neišmanymą, dar naujokas šioj srity |
|
_________________ Aš pažeidžiau forumo taisykles ir reklamavau paraše. ...Bet uz reklama tai susimokejau  |
|
|
|
 |
Programavimas: uzveskite ant kelio :/ |
Parašytas: 2008 07 27, 17:54 |
|
|
|
|
klaviaturos nuskaityma gali ikisti i koki nors pertraukima arba i ta pati cikla.
patogiausi i pertraukimus , panaudok du isorinius pertraukimus kiekvienam mygtukui po viena
vino pertraukimo viduje b++;
kito b--
jei nori kad reikesme butu apriboto daryk taip:
if (b>0){b--;}
arba if (b<max){b++}
jei nemoki naudoti pertraukimu idek kur nors i savo cikla
if ((PINA & 1) || b>0){b--;}
ir analogiska padidinimui |
|
|
|
|
|
 |
Programavimas: uzveskite ant kelio :/ |
Parašytas: 2008 07 27, 18:03 |
|
|
|
|
| dekui, bandysiu, gal gausis kas nors |
|
_________________ Aš pažeidžiau forumo taisykles ir reklamavau paraše. ...Bet uz reklama tai susimokejau  |
|
|
|
 |
Programavimas: uzveskite ant kelio :/ |
Parašytas: 2008 07 27, 18:36 |
|
|
|
|
geras veikia!!!
nemoku tu pertraukimu tai irasiau i cikla  |
|
_________________ Aš pažeidžiau forumo taisykles ir reklamavau paraše. ...Bet uz reklama tai susimokejau  |
|
|
|
 |
 |
Programavimas: uzveskite ant kelio :/ |
Parašytas: 2008 07 29, 12:12 |
|
|
|
|
iškilo bėda del eeprom
kaip padaryt kad butu galima išsaugoti kintamaji "b" paspaudus mygtuka-
ta prasme kai pirma karta paleidi programa ji "b" pajima kaip default'a o paskui ji pakeitus galima butu irasyti i eeprom ir is naujo paleidus kontroleri veiktu su išsaugota "b" reikšme. nežinau kur dėti ta ee_read, ir isviso ar gerai parašiau eepromo adresa kaip nuli . programa kompiliuojasi klaidu nemeta tik aišku neveikia...
| Kodas: |
#include <iotiny2313.h>
void velinam(unsigned int a);
void ee_write(unsigned int uiAddress, unsigned char ucData);
unsigned char ee_read(unsigned int uiAddress);
unsigned char EEPE,EEMPE,EERE;
int main(void)
{
DDRB=255;
PORTD=7;
unsigned int b=0;
unsigned int T=364;
while(1)
{
if(!(PIND&1)&(b<(T/4)))
{b++;
}
while(!(PIND&1)){}
if(!(PIND&2)&(b>0))
{b--;
}
while(!(PIND&2)){}
if(!(PIND&4))
{ee_write(0,b);
}
while(!(PIND&4)){}
PORTB=9;//1001
velinam(b);
PORTB=12;//1100
velinam(T/4);
PORTB=14;//1110
velinam((T/4)-b);
PORTB=6;//0110
velinam(b);
PORTB=3;//0011
velinam(T/4);
PORTB=1;//0001
velinam((T/4)-b);
}
}
void velinam(unsigned int a)
{unsigned int i=0;
for(i=0; i<a; i++){
}}
void ee_write(unsigned int uiAddress, unsigned char ucData)
{while(EECR & (1&EEPE))
{EEAR=uiAddress;
EEDR=ucData;
EECR|=(1<<EEMPE);
EECR|=(1<<EEPE);
}}
unsigned char ee_read(unsigned int uiAddress)
{while(EECR & (1<<EEPE));
EEAR=uiAddress;
EECR|=(1<<EERE);
return EEDR;
} |
ps. eeproma rašiau taip kaip datašyte parodyta. |
|
_________________ Aš pažeidžiau forumo taisykles ir reklamavau paraše. ...Bet uz reklama tai susimokejau  |
|
|
|
 |
|
 |
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 |
|

|
 |