 |

|
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 10 13, 16:54. Visos datos yra GMT + 2 valandos.
|
|
|
 |
Forumas » Mikrovaldikliai » keletas taimeriu vienu metu
|
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
|
|
|
 |
 |
 |
keletas taimeriu vienu metu |
Parašytas: 2010 05 31, 20:22 |
|
|
|
Sveiki. Duomenų nuskaitymui iš kompiuterio į masyvą naudoju šią funkciją
Kodas: |
unsigned char usart_read(void){
unsigned char i;
TCNT0 = 0;
sbi(TIFR,TOV0);
i = 0;
while(1){
if(bitas(TIFR,TOV0)){ //jei praejus 16ms negauna nauju duomenu
return 0; //reiskia duomenys atsiusti
}
if(bitas(UCSRA,RXC)){
usart_data[i] = UDR;
TCNT0 = 0;
i++;
}
if(i==8) return 1; //klaida persipilde usart_data mas.
}
}
void inittimer1(void){
//Fast PWM Mode 5
TCCR1A|=(1<<COM1A1)|(0<<COM1A0)|(0<<WGM11)|(1<<WGM10);
TCCR1B|=(1<<WGM12)|(0<<WGM13)|(0<<CS12)|(1<<CS11)|(1<<CS10);
ICR1L=0xFF;
ICR1H=0x00;
OCR1A=128;
} |
pagrindinėje programoje yra while, kuriame yra keletas if() sąlygu. Kai tam tikro if() ir jo sąlyga teisinga, keičiu usart_data masyvo reikšmes į integer (masyve tik skaičiai/ASCII simboliai).
Viskas gerai veike, kol neprireike kito taimerio timer1, kuris yra viename iš if(), tame if() keičiu vel usart_data masyve esancius char į integer ir ta skaičiu priskiriu OCR1A registrui.
Žiūrint su proteus matosi, kad siunčiant is kompiuterio didesnį skaičių, į masyvą įsikelia mažas, ko pasekoje negaliu keisti impulso skvarbos ant OC1A kojelės.
Kaip sukonfigūruoti PWM valdymą? Gal tie taimeriai įtakoja vienas kito darbą? |
|
|
|
|
 |
 |
keletas taimeriu vienu metu |
Parašytas: 2010 05 31, 21:05 |
|
|
|
koks tas didesnis skaicius, didesnio kaip 255 nepasiusi per usart. Jei siunti int tai reik siust po du baitus pvz: 0xFFAA pasiunti 0xAA tada 0xFF, o kai priimi su kontroleriu vel viska sujungi i int |
|
|
|
|
|
 |
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 |
 |
VAT calculator
VAT number check,
What is VAT,
How much is VAT |
 |
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 |
|

|
 |