 |

|
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 07 27, 22:04. Visos datos yra GMT + 2 valandos.
|
|
|
 |
Forumas » Mikrovaldikliai » ADC problema
|
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 1 iš 2 Pereiti prie 1, 2 Toliau |
|
 |
 |
ADC problema |
Parašytas: 2009 04 05, 12:15 |
|
|
|
Niekaip nesusitvarkau su adc, pats adc ir multiplexeris veikia lyg ir gerai, bet masyvas uzsipildo atsitiktinai, t.y. didinant vieno kanalo reiksme ir isvedant visa masyva i ekrana, visas matyvas igauna to kanalo reiksme.
Gal kas mato kur logine klaida?
Kodas: |
volatile unsigned char channel=0;
volatile static unsigned int adc_result[4];
ADMUX=(1<<REFS1)|(1<<REFS0)|(2); // 2.56V ref, start with channel 2
ADCSRA=(1<<ADEN)|(1<<ADIE)|(1<<ADPS2)|(1<<ADPS1);
ADCSRA|=(1<<ADSC);
ISR(ADC_vect)
{
adc_result[channel]=ADCW;
channel++;
if (channel>3){
channel=0;
}
channel=channel+2; // toggle the channel between 2 and 5.
ADMUX=(1<<REFS1)|(1<<REFS0)|(channel); // 2.56V ref
channel=channel-2;
ADCSRA|=(1<<ADSC);
}
|
|
|
|
|
|
 |
ADC problema |
Parašytas: 2009 04 05, 12:28 |
|
|
|
tai gal ne adc problema, o atvaizdavime?
nes ISR kaip ir normalus, pakaitomis keičia, masyvo elementus pildo.
gal MAIN keiti channel ir negrąžini kur reikia? |
|
|
|
|
 |
ADC problema |
Parašytas: 2009 04 05, 12:44 |
|
|
|
Channel keiciamas tik ISR.
Kazkaip man atrodo, kad problemos gali buti su situo kintamuoju, volatile unsigned char channel; nes ikelus ji i ISR gaunami truputi keisti rezultatai.
Atvaizdavimas vyksta mazdaug taip:
Kodas: |
int_to_ascii(adc_result[0],buffer,2,1);
LCD_gotoXY(0,0);
LCD_writeString_F(buffer);
int_to_ascii(adc_result[1],buffer,3,0);
LCD_gotoXY(0,1);
LCD_writeString_F(buffer); |
|
|
|
|
|
 |
ADC problema |
Parašytas: 2009 04 05, 15:00 |
|
|
|
int_to_ascii šitas paties rašytas? gal jis ir krečia šunybes |
|
|
|
|
 |
ADC problema |
Parašytas: 2009 04 05, 15:20 |
|
|
|
Ne paties, bet problema ne cia. Nes padarius channel nekintama viska graziai isvedama. Visur nuliukai isskyrus nustatyta kanala. |
|
|
|
|
 |
ADC problema |
Parašytas: 2009 04 05, 15:59 |
|
|
|
zinai cia kazkas nelogiska
channel++; //kam sitas???
if (channel>3){channel=0;}
channel=channel+2; // toggle the channel between 2 and 5.
channel=channel-2;
manau tavo programa tiesiog skanuoja kanalus 2,3,4 o ne 2 ir 5
siulau daryti sitaip:
if (channel==5){ channel=2;} else{channel=5;} |
|
|
|
|
 |
ADC problema |
Parašytas: 2009 04 05, 16:05 |
|
|
|
Nu taip programa skanuoja kanalus 2,3,4,5. Truputi blogai komentaras uzrasytas. |
|
|
|
|
 |
ADC problema |
Parašytas: 2009 04 05, 16:08 |
|
|
|
patikrink ar tikrai gerai rašo įmesdamas reikšmes:
adc_result[]={1, 2, 3, 4};
ir išjunk adc tam kartui. |
|
|
|
|
 |
ADC problema |
Parašytas: 2009 04 05, 17:16 |
|
|
|
o kitas klausimas ar ta reiksme kinta?
sakau visim kanalam ji vienoda, bet ar jinai keiciasi?
beje ar i kitur kanalus padavei koki nors signala?
jei nepadavei tai tau rodys visi ta kuri padavei bent i viena is ju. |
|
|
|
|
 |
ADC problema |
Parašytas: 2009 04 05, 17:38 |
|
|
|
Va su tais kitais kanalais ir man tokia mintis buvo kilus, bet nesugalvojau priezasties del ko taip turetu atsitikt...
O iskitruju tai visi kanalai pokolkas kabo ore. |
|
|
|
|
 |
ADC problema |
Parašytas: 2009 04 05, 17:52 |
|
|
|
sneikaz rašo: |
Va su tais kitais kanalais ir man tokia mintis buvo kilus, bet nesugalvojau priezasties del ko taip turetu atsitikt...
O iskitruju tai visi kanalai pokolkas kabo ore. |
nu tokiu atveju tai normalu kas is visu skaitosi toks pat rezultatas |
|
|
|
|
 |
ADC problema |
Parašytas: 2009 04 05, 19:31 |
|
|
|
Dekui Digix. Dabar butu gerai issiaikint del ko taip yra? Vienintele mintis tai multiplexerio talpa.
O as pusantros dienos tobulinau/perrasinejau koda... |
|
|
|
|
 |
ADC problema |
Parašytas: 2009 04 05, 19:36 |
|
|
|
adc iejime turi T&H stiprintuva kuris paima signalo "sample" ir laiko kol bigiama konversija.
o komutatorius tik perjunginėja is kurio iejimo paimti signala. |
|
|
|
|
 |
ADC problema |
Parašytas: 2009 04 05, 19:44 |
|
|
|
nu tai taip ir būna... kažką pražiopsai paskui kankinies. nieko naujo ne pirmas ne paskutinis.
o vienodos reikšmės nes sample & hold vienas tėra. |
|
|
|
|
 |
ADC problema |
Parašytas: 2009 04 05, 19:45 |
|
|
|
taip tas dalykas tik vienas |
|
|
|
|
|
 |
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 |
 |
FS25 Mods
FS25 Harvesters,
FS25 Tractors Mods,
FS25 Maps 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 |
 |
Football Training Kit
Football Training Equipment,
Football Skills,
Football Training |
|

|
 |