 |

|
|
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 11, 01:36. Visos datos yra GMT + 2 valandos.
|
|
|
 |
Forumas » Mikrovaldikliai » codevision atmega128 lcd output. Papildyta
|
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
|
|
|
 |
 |
codevision atmega128 lcd output. Papildyta |
Parašytas: 2010 01 05, 14:46 |
|
|
|
|
Mokinuosi ADC su Atmega128. Naudoju Proteus. LCD+Atmega+Potenciometras.
.....
.....
char lcd_buffer[33];
unsigned char testas_ADC;
float testas_U;
.....
.....
while (1)
{
testas_ADC = read_adc(0);
lcd_clear();
lcd_gotoxy(0,0);
sprintf(lcd_buffer,"ADC: %u ",testas_ADC);
lcd_puts(lcd_buffer);
testas_U = (testas_ADC+1)*5/256; //konvertuoju ADC verte i Voltus
lcd_gotoxy(0,1);
sprintf(lcd_buffer,"Itampa: %f V",testas_U);
lcd_puts(lcd_buffer);
delay_ms(100);
};
Man su situo kodu i LCD isveda ADC reiksme (sukant potenciometra, LCD ADC reiksme keiciasi). Viskas gerai.
Nepavyksta isvesti tikraja iejimo reiksme Voltais. LCD matau tik "Itampa: V" . Vertes nera. Kiek skaiciau, ko gero problema su float tipo duomenimis. Kaip reiketu sita dalyka sutvarkyt?
Padekite isvesti ADC reiksme VOLTAIS i LCD, panasiai kaip cia:
http://www.youtube.com/watch?v=6yB9UNQ0kQI
Aciu  |
|
|
|
|
|
 |
 |
codevision atmega128 lcd output. Papildyta |
Parašytas: 2010 01 07, 20:18 |
|
|
|
|
| Katik ir as radau, jei VREF 5V tai 5V * ADC Value / 1023 |
|
_________________ Kas yra virš drąsos? Bėgti prieš traukinį ir šaukti suvažinesiu...! |
|
|
|
 |
codevision atmega128 lcd output. Papildyta |
Parašytas: 2010 01 07, 21:54 |
|
|
|
|
Tas tai aisku, susiskaiciuosiu, bet esme ta, jog reikia i LCD isvesti float tipo kintamaji, pvz, 2,234 arba 3,123 arba 4,56 ir tt
bus minciu?
Galiu kitaip suformuluot klausima:
kokia sintakse jus i LCD ekrana isvedate toki skaiciu 123,89? |
|
|
|
|
|
 |
codevision atmega128 lcd output. Papildyta |
Parašytas: 2010 01 09, 12:50 |
|
|
|
|
| Kodas: |
float a, c;
unsigned int sk, sk1, sk2;
a = 1.15;
sk = (unsigned int)(a * 100); // 2 sk. po kablelio
sk1 = sk / 100; //skaicius pries kableli
sk2 = sk % 100; //skaicius po kablelio
//...lcd...
|
galima ir be float suskaičiuot skaičių su kableliu. Pats pamastyk  |
|
|
|
|
|
 |
codevision atmega128 lcd output. Papildyta |
Parašytas: 2010 01 09, 13:21 |
|
|
|
|
Panasiai turetu atrodyt kaip cia?
int temp=578;
printf("temp = %c%i.%u C\r\n",sign,temp/10,temp%10);
temp = 57.8 C
Tik man dar reikia gerokai palauzyt galva kad gautusi tai ko noriu |
|
_________________ Kas yra virš drąsos? Bėgti prieš traukinį ir šaukti suvažinesiu...! |
|
|
|
 |
codevision atmega128 lcd output. Papildyta |
Parašytas: 2010 01 09, 14:31 |
|
|
|
|
| ACC rašo: |
project > configure > c compiler > (s)printf features.
pasirink "float, width, precision"
nors esu uz integer.
Geros dienos, |
Sita jau bandziau ir man meta lentele
Evaluation version code size limit exceeded!
Dabar pas mane nustatyta long,width,precision |
|
_________________ Kas yra virš drąsos? Bėgti prieš traukinį ir šaukti suvažinesiu...! |
|
|
|
 |
 |
codevision atmega128 lcd output. Papildyta |
Parašytas: 2010 01 09, 17:05 |
|
|
|
|
Aciu uz pagelbejima. veikia
zodziu, cia kodas, jei kam prireiktu:
beje, nustatymuose palikta "int, width", nes "float" neuztenka licenzijos
...
...
char lcd_buffer[33];
unsigned char testas_ADC;
float a, c;
unsigned int sk, sk1, sk2;
...
...
while (1)
{
testas_ADC = read_adc(0);
lcd_clear();
lcd_gotoxy(0,0);
sprintf(lcd_buffer,"ADC: %u",testas_ADC);
lcd_puts(lcd_buffer);
a = ADCH;
sk = (unsigned int)((a+1)*5/256 * 1000); // 3 sk. po kablelio; ADC verte perskaiciuoja i Voltus
sk1 = sk / 1000; //skaicius pries kableli
sk2 = sk % 1000; //skaicius po kablelio
lcd_gotoxy(0,1);
sprintf(lcd_buffer,"Itampa: %u.%u V",sk1, sk2);
lcd_puts(lcd_buffer);
delay_ms(100);
}; |
|
|
|
|
|
|
 |
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 |
|

|
 |