Elektronika.lt
 2025 m. lapkričio 9 d. Projektas | Reklama | Žinokite | Klausimai | Prisidėkite | Atsiliepimai | Kontaktai
Paieška portale
EN Facebook RSS

 Kas naujo  Katalogas  Parduotuvės  Forumas  Tinklaraščiai
 Pirmas puslapisSąrašas
 Forumas / + pokalbiai
 - Paieška forume
 - D.U.K. / Forumo taisyklės
 - Narių sąrašas
 - Registruotis
 - Prisijungti

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 11 09, 17:11. Visos datos yra GMT + 2 valandos.
 Forumas » Mikrovaldikliai » C pradmenys
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 12
Pereiti prie 1, 2  Toliau
Pradėti naują temą  Atsakyti į pranešimą Rodyti ankstesnį pranešimą :: Rodyti kitą pranešimą 
 C pradmenys
PranešimasParašytas: 2006 01 22, 23:15 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Domantas
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Noriu aprašyti masyvą, kurį reikia patalpinti į eeprom:
eeprom char mano_masyvas[]={"pirmas", "antras", "trecias"};

Toliau noriu nuskaityti reikšmes:
mano_masyvas[0], mano_masyvas[1] ir mano_masyvas[2].
Įsivaizdavau, kad mano_masyvas[0]="pirmas", mano_masyvas[1]="antras" ir mano_masyvas[2]="trecias", tačiau taip nėra. Įsivaizduoju, kad čia kažkas elementaraus, bet kolkas kažko nesupratu:(. Gal galite padėti susigaudyti.
 C pradmenys
PranešimasParašytas: 2006 01 23, 11:55 Pranešti apie taisyklių pažeidimą Atsakyti su citata
CodeC
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
taip ir neturi buti. greiciausiai naudoji 8 bitu kontroleri, kurio eeprom organizacija irgi yra XX x 8 bit. kadangi atminties adresas gali saugoti 8 bitu reiksne, o ASCII kodavimas butent ir yra 8 bitu (nu tarkim 7, neesme), tai vienam adrese gali saugoti tik viena simboli. turetum daryt dvimati masyva arba nusiskaitineti po viena simboli. siaip manau ta pacia informacija perduotum vietoj 'pirmas', naudodamas tiesiog '1'. sutaupysi nemazai atminties:)
 C pradmenys
PranešimasParašytas: 2006 01 23, 12:16 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Domantas
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Ačiū už komentarą. Jau susigaudžiau, kad tokio tipo masyve galiu aprašyti tik konkrečius simbolius. Mano tikslas yra sukurti eilę užrašų, kurie būtų, kaip meniu elementai LCD ekrane ir kuriuos galėčiau įrašyti į vidinį uC EEPROM arba dar geriau į išorinį. Kaip galima būtų efektyviau tai organizuoti? Ar naudoti dvimačius masyvus, o gal yra ir kitas būdas?
 C pradmenys
PranešimasParašytas: 2006 01 23, 12:38 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Domantas
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Jeigu masyvą aprašyčiau taip:
char masyvas[3][33]={{"pirmas"}, {"antas"}, {"trecias"}};

Ar tai reikštų, kad masyvas[0][33]="Pirmas" ar tai bus tik pirmo užrašo 33 simbolis?
 C pradmenys
PranešimasParašytas: 2006 01 23, 13:44 Pranešti apie taisyklių pažeidimą Atsakyti su citata
siena
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą ICQ numeris
tikria taip Smile)
siaip C kalboje nera tokio dalko kaip String tipas .. todel cia butu galima suzaisti sekanciai :
pradziai apsirasai visas reikaimas eilustes
unsigned char eil_pirmas[] = "pirmas";
unsigned char eil_antras[] = "antras";
....
zinoma nepamrisk nurodyti kad dumenys talpinami eeprom atmintyje
tuomet pagal C principus masyvo vardas yra rodykle i masyva .. tada beleika susidaryti redukliu masyva ...
unsinged char * masyvas[]={eil_pirmas,eil_antras,...};
sis masybas jau bus talpinamas paprastoje atmintyje .. o rodukliu reiksmes turertu atsitikti pirmo eilutes elemento adresa eeprom atmintyje

tai tiek ...
 C pradmenys
PranešimasParašytas: 2006 01 23, 14:19 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Domantas
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Dar kartą ačiū. Ar teisingas bus tada toks kodas:
...
eeprom char menu1[]="pirmas";
eeprom char menu2[]="antras";
eeprom char menu3[]="trecias";
char *menu[]={menu1, menu2, menu3};
char lcd_buffer[33];

main()
{
sprintf(lcd_buffer, *menu[0]);
lcd_puts(lcd_buffer); // į LCD turėtų išvesti "pirmas"?????
}

Ar teisingai supratau?
 C pradmenys
PranešimasParašytas: 2006 01 23, 14:26 Pranešti apie taisyklių pažeidimą Atsakyti su citata
siena
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą ICQ numeris
Domantas rašo:
Dar kartą ačiū. Ar teisingas bus tada toks kodas:
...
eeprom char menu1[]="pirmas";
eeprom char menu2[]="antras";
eeprom char menu3[]="trecias";
char *menu[]={menu1, menu2, menu3};
char lcd_buffer[33];

main()
{
sprintf(lcd_buffer, *menu[0]);
lcd_puts(lcd_buffer); // į LCD turėtų išvesti "pirmas"?????
}

na visu pirma tai :
sprintf(lcd_buffer, menu[0]);
o siaip nezinau.. jiegu sprintf supras kas riekai duomenis nuskaityti butent is eeprom tai jo... bet manau kad reikai nurodyti iskur duomenis krauti.. nes viena reiksmiskai nera nurodyta kur yra laikomi tie duomenys ...
 C pradmenys
PranešimasParašytas: 2006 01 23, 14:30 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Domantas
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Kompileris tokio kodo nesupranta. Rašo "pointer are to different memory classes". Tada pataisius, kodą, kaip žemiau, sukompiliuoja, tik negaliu dabar patikrinti ar veikia ant kontrolerio.
...
eeprom char menu1[]="pirmas";
eeprom char menu2[]="antras";
eeprom char menu3[]="trecias";
eeprom char *menu[]={menu1, menu2, menu3}; //pataisyta
char lcd_buffer[33];

main()
{
sprintf(lcd_buffer, *menu[0]);
lcd_puts(lcd_buffer); // į LCD turėtų išvesti "pirmas"?????
}
 C pradmenys
PranešimasParašytas: 2006 01 23, 14:51 Pranešti apie taisyklių pažeidimą Atsakyti su citata
siena
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą ICQ numeris
na siaip teisybe pasake .. riekejo ten tipo pakeitima padaryti .. bat siaip pagal C standarta turi tik Warning`a ismeti ...
 C pradmenys
PranešimasParašytas: 2006 01 23, 15:18 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Domantas
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
jeigu įrašau: sprintf(lcd_buffer, menu[0]), tai kompileris rodo tą pačią klaidą.
O kaip tipo pakeitimas padaromas?
 C pradmenys
PranešimasParašytas: 2006 01 23, 15:34 Pranešti apie taisyklių pažeidimą Atsakyti su citata
siena
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą ICQ numeris
pakeitimas daromas taip paprastai:
jeigu turi kintamaji x = eeprom cahr * o reikia char * tai
(char *)x;
bet sitoje vietoje manau kad tau glai nepadeti.. juolab kai tu naudoji sprintf... nes klausimas ar si funkcija supras is kur skaityti duomenis ..
gali buti kad tau reikai nuskaityti duomenis is eeprom i ram stringa ir tik tada naudot..
 C pradmenys
PranešimasParašytas: 2006 01 23, 17:13 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Domantas
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Radau dar tokią išraišką:
eeprom enum days {
sunday, monday, tuesday, wednesday,
thursday, friday, saturday} days_of_week;

Pamėginsiu namie pasižaisti, kad klausimai nebūtų visai kvaili:)
 C pradmenys
PranešimasParašytas: 2006 01 23, 18:00 Pranešti apie taisyklių pažeidimą Atsakyti su citata
siena
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą ICQ numeris
enum tai yra isvardinimas .. labai patogu naudoti kai tau reikia surasytai sarasa kokia nuo n iki m ir panasiai .. vietoi to kad daryti define
taipogi ta enum glai naudoti kaip tipa .. ir t.t.
istikro jis neturi savje pacio eilutes .. kiekvienam elementui yra peiskiriamas skaiciukas .. automatiskai atrba pats priskiri
 C pradmenys
PranešimasParašytas: 2006 01 24, 12:38 Pranešti apie taisyklių pažeidimą Atsakyti su citata
CodeC
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
lengviausiai tau butu apsirasyt putchar paprograme, kurioje nurodysi kur deti duomenis, o poto teliks rasyti printf ('Laba diena'); ir tau viskas tiesiai keliaus i lcd. nes printf kreipiasi i putchar parograme. kadangi neparasai nei koki proca nei koki lcd naudoji tai nieko konkreciau ir nepasakysiu.
ziurint kokio dydzio ten ta meniu nori sukurti.
 C pradmenys
PranešimasParašytas: 2006 01 24, 13:50 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Domantas
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Naudoju Atmega8515 ir stndartinį 2x16LCD ir dar kelis 1wire ir I2C įrenginukus, bei CodeVisionAVR kompilerį.
Taip pat naudoju standartines kompilerio bibliotekas: stdio.h, lcd.h ir kt.

Kol kas supratau, kad negaliu teisingai susikalbėti su duomenimis esančiais FLASH, SRAM ir EEPROM. Kol lokalūs kintamieji patalpinti į SRAM, viskas veikia. Taip pat kodą kompiliuoja, kai duomenis perkeliu į FLASH (netikrinau tik kaip realiai veikia kontroleris). Kai tik mėginu perkelti į EEPROM - nekompiliuoja. Stringa ties sprintf(..). Tikriausiai reikia padaryti taip, kad duomenys iš EEPROM atsidurtų ten, kur supranta sprintf()?
Pradėti naują temą  Atsakyti į pranešimą Pereiti prie 1, 2  Toliau
 
Forumo sistema: phpBB
 „Google“ paieška forume
 Kas naujesnio?
 Naujos temos forume

Global electronic components distributor – Allicdata Electronics

Electronic component supply – „Eurodis Electronics“

LOKMITA – įvairi matavimo, testavimo, analizės ir litavimo produkcija

Full feature custom PCB prototype service

Sveiki ir ekologiški maisto produktai

Mokslo festivalis „Erdvėlaivis Žemė

LTV.LT - lietuviškų tinklalapių vitrina

„Konstanta 42“

„Mokslo sriuba“

www.matuok.lt - Interneto spartos matavimo sistema

Programuotojas Tautvydas – interneto svetainių-sistemų kūrimas

PriedaiMobiliems.lt – telefonų priedai ir aksesuarai

Draugiškas internetas

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
Reklama
‡ 1999– © Elektronika.lt | Autoriaus teisės | Privatumo politika | Atsakomybės ribojimas | Turinys | Reklama | Kontaktai LTV.LT - lietuviškų tinklalapių vitrina
Ets2 mods, Ats mods, Beamng drive mods
allmods.net
„MokslasPlius“ – mokslui skirtų svetainių portalas
www.mokslasplius.lt
Optical filters, UV optics, electro optical crystals
www.eksmaoptics.com
LTV.LT – lietuviškų tinklalapių vitrina
www.ltv.lt/technologijos/
Elektroninių parduotuvių optimizavimas „Google“ paieškos sistemai
www.seospiders.lt
Mokslo festivalis „Erdvėlaivis žemė“
www.mokslofestivalis.eu
Reklama


Reklama