Elektronika.lt
 2025 m. gruodžio 18 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 12 18, 19:31. 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 22
Pereiti prie Atgal  1, 2
Pradėti naują temą  Atsakyti į pranešimą Rodyti ankstesnį pranešimą :: Rodyti kitą pranešimą 
 C pradmenys
PranešimasParašytas: 2006 01 24, 14:08 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 idomiai jus dirbate Smile))
naidojate kokiastai standartines funkcijas net nezinodami kaip jos istikro elgiasi vienu ar kitu atveju...
beabejo jeigu sprintf negli isvedineti duomenu is tam tikros atminties tai ji to ir nepadarys... kaip zinia is eeprom duomenys yra skaitomi per registus ... tai sitoje vietore kaip minimum reiktu pasirasyti kokianors funkcija kur reikiamus duomenis skaitytu is eeprom...
kitas dalykas nelabai suprantu sprintf funkcijos panaudojimo sioje vietoej ..
nes jeigu aprisrasai funkcija kuri skaito duomenis is eeprom pvz:
void eeprom_read_data(unsigned char dest,unsigned char src,insigned char length)
galesi duomenis i buferi su kelti labai paprastai
eeprom_read_data(lcd_buffer,eeprom_adresas,ilgis);
ir gauni kad duomenys jau sukopijous i lcd_buffer
o tada dek juos i lcd
va kaip pvz funkcija duomenis is eeprom paimti
void eeprom_read_bl(unsigned char *dest , unsigned char *str, unsigned char i)
{

while (i--)
*(dest + i) = eeprom_read(str + i);
}
}

unsigned char eeprom_read(unsigned char *Add)
{
while(eeprom_reg & (1 << EEWE));
eeprom_AddL = (unsigned int)Add;
eeprom_reg |= 0x01;

return (eeprom_Data);
}

cia naudojami kintamieji
#define eeprom_reg (*(volatile unsigned char *)0x3C)
#define eeprom_AddL (*(volatile unsigned int*)0x3E )
#define eeprom_Data (*(volatile unsigned char *)0x3D )

na beje cai adresas turetu tikti ir atmega8 bet gali ir nelabai reikia sutirkitni nes rasyta atmega16
 C pradmenys
PranešimasParašytas: 2006 01 24, 14:45 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ą
to siena:
čia ne darbas, o tik malonus laisvalaikio praleidimas Smile
ko neišmokai jaunas būdamas, tas sunkiai daeina dabar. Bet noras žaisti dar nepraėjo, ir suprantu vis daugiau. Tikiuosi, kad su Jūsų visų patarimais ir komentarais suvoksiu viską daug greičiau Very Happy
 C pradmenys
PranešimasParašytas: 2006 01 25, 12: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ą
Na, štai viskas gavosi, tik atidžiau reikėjo pavyzdžius pastudijuoti.
O sprintf() iš tikrųjų visai nereikalinga buvo Smile Ačiū už pagalbą!
 C pradmenys
PranešimasParašytas: 2006 02 05, 20:03 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ą
Toliau tęsiu klausimų seriją iš C pradmenų. Kompileris CodeVisionAVR, bet čia turbūt neturi tas reikšmės.
Turiu du kintamuosius:
unsigned char h, m; //h-valanos, m - minutės
man tuos du kintamuosius reikia apjungti į vieną:
unsigned int laikas;
sakykim h=0x10, o m=0x0F, man reikia padaryti, kad laikas=0x100F.
Ar yra kokia paprasta komanda tokiu būdu apjungianti duomenis? Ar reikia rašyti kokią atskirą procedūrą?
 C pradmenys
PranešimasParašytas: 2006 02 05, 20:17 Pranešti apie taisyklių pažeidimą Atsakyti su citata
vakaras
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje ICQ numeris
Domantas rašo:

unsigned char h, m; //h-valanos, m - minutės
unsigned int laikas;
sakykim h=0x10, o m=0x0F, man reikia padaryti, kad laikas=0x100F.
Ar yra kokia paprasta komanda tokiu būdu apjungianti duomenis? Ar reikia rašyti kokią atskirą procedūrą?


laikas = (h<<8 ) | m;
 C pradmenys
PranešimasParašytas: 2006 02 05, 20:27 Pranešti apie taisyklių pažeidimą Atsakyti su citata
benner
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
daryk taip:

unsigned int sujungtas;
unsigned char h, m;

h=0x10; m=0x0F;
sujungtas = (h << 8 ) + m;
<< daro pastumima kairen. ta pati efekta gali gauti
sujungtas = (h * 256) + m; bet sitaip bus leciau.
 C pradmenys
PranešimasParašytas: 2006 02 05, 21:44 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ą
Tik ką perskaičiau apie bitų perstūmimo operacijas, bet atsakymai atėjo greičiau. Geras forumas. Ačiū už pagalbą.
 C pradmenys
PranešimasParašytas: 2006 02 06, 10: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ą
Jeigu kam kils tokios pat problemos, tai korektiškai kodas turėtų atrodyti taip:
char h, m;
int laikas;
...
{
laikas=h;
laikas=(laikas<<8 )|m;
}
Jeigu padarytume h<<8, tai h==0, nes pagal duomenų aprašymą kintamasis yra tik 8 bitų.
 C pradmenys
PranešimasParašytas: 2006 02 06, 10:54 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
galima naudoti union
union{
struct{
char h;
char m;
}laikas;
short sujungtaslaikas;
}laikasjungtas;

siaip siulyciaunaudoti ne int o short tipo kintamaji.. nes short visada yra 2 baitai .. o int nevisada ...
 C pradmenys
PranešimasParašytas: 2006 02 06, 12:44 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ą
Reikės paeksperimentuoti ir patikrinti kada gaunasi mažiausias kodas. Iš princimo man užtenka h<<6, kadangi nemažai kintamųjų, tai turėtų ir kodas sumažėti.
Dar vienas klausimėlis, kaip išsiversti su sprintf() funkcija nenaudojant float tipo kintamųjų. Esmė tame, kad matuoju temperatūrą, kuri aprašoma, kaip float temp (tikslumas yra vienas skaičius po kablelio). Paprastai naudojant sprintf() funkciją, duomenų išvedimui į LCD su float kintamaisiais labai padidėja kodo apimtis. Gal čia irgi galima, kaip nors pastumdyti bitukus ir išskirti sveiką bei dešimtainę dalį? Ar viskas daug sudėtingiau?
 C pradmenys
PranešimasParašytas: 2006 02 06, 13:21 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
isesmes galima .. as nelabai pamenu kaip float apsiraso binarineje formoje .. bet saip jeigu sakiciu po kablelio skaicius aiskus tai turetu tikrai sutaupyti kodo nei naudojant standartines funkcijas ...
 C pradmenys
PranešimasParašytas: 2006 02 06, 16:42 Pranešti apie taisyklių pažeidimą Atsakyti su citata
benner
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
as tai siulyciau naudot
#include <stdint.h>
ir tada

uint16_t ir tt tipus naudot, kada tixliai zinai kur koks Smile
Pradėti naują temą  Atsakyti į pranešimą Pereiti prie Atgal  1, 2
 
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
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
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