Elektronika.lt
 2024 m. lapkričio 7 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 2024 11 07, 18:39. Visos datos yra GMT + 2 valandos.
 Forumas » Mikrovaldikliai » programavimo niuansai
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ą 
 programavimo niuansai
PranešimasParašytas: 2013 03 27, 22:07 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Elektronix
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Kad nekurt keliu temu ,tai keliu dalyku paklausiu cia. Pirmiausia toke situacija , atmega8 + lcd ekranelis , kelios knopkes "meniu" valdymui, eina laikrodis ir as noriu tarkim ,kad per para meniu nusatatyta kieki kartu , nustatytu laiku tarkim uzsidegtu ledas ant kazkurio pino kazkokiam laiko tarpui, galvoju iskirt pvz masyva A[16] kuriam butu saugomas laikas kada ijungt led , bet nesugalvoju kaip paprastai tam masyvui priskirt tuos laikus , tarkim viena diena ivedu, kad man ijungtu leda 3 kartus skirtingu laiku ,o kita kart pvz 6 kartus per para nustatytais laikais ijugtu.Esme panasi kaip android platformoi zadintuvo , galima iskart nustatyt ,kad kelis kart skirtingu laiku skambetu zadintuvas. Kitas klausimas kaip teisingai nustatyt fuse bitus atmega8 , kad veiktu su laikrodiniu 32.768 KHz kvarcu , noriu, kad laikrodis butu tikslus. Nustatyt fuse bitus noreciau per avr studio , nes per ja ir pati hex irasineju.
 programavimo niuansai
PranešimasParašytas: 2013 03 27, 22:45 Pranešti apie taisyklių pažeidimą Atsakyti su citata
sopkis
Moderatorius
Moderatorius
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje ICQ numeris
Pirma tai naudoji normalų 16Mhz kvarcą, nes su laikrodiniu poto gali neužtekti greičio. Naudoji pertraukimą, taimerį su preskaleriu, gauni pertraukimo suveikimą kas 1/x sekundės, tada jau programoje sumuoji iki gausi x ir tada laiką kituose kintamuosiuose skaičiuoji. O žadintuvo laikus eeprome saugok - ten koks 10 baitas bus žadintuvo laikų skaičius, nuo 11 eina diena, valanda, minutė, sekundė -tiek baitų kiek reikia. Antro žadintuvo laikų pradžios baitą jau pasiskaičiuosi priklausomai nuo to kiek vieno žadintuvo duomenų bus. Ir poto kas sekunde gali tikrinti esamą laiką ir žadintuvo laikus - sutapo, kažką darai. Bet šiaip reikia pradėti nuo algoritmo sudarymo.
 programavimo niuansai
PranešimasParašytas: 2013 03 28, 02:57 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Digix
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
manau siuo atveju patogiauisa bus laika saugoti tiesiog viename 32 bitu skaiciuje. o ant ekrano ji isvedineti atskira funkcija suskaidant i dienas valandas minutes ...

tada visas laiko skaiciavimas suives i viena ++ komanda kai tieigo pertraukimo metu padidini skaitliuka vienetu. ir cia pats atlieki patikrinima ar nera sutapimo su visais is nustatytu laiku.

konvertuoti is to 32bitu skaicisua i normalu laika galima analogiskai kaip ir konvertujant skaicius i desimtaine ar kokia kita sistema.

laiko reguliavimas - ir + mygtukais irgi labai nesudetingas
 programavimo niuansai
PranešimasParašytas: 2013 03 28, 11:25 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Ugniues
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
8 bitai, 32 bitai? gal galit papasakot ką nors apie tai? Very Happy
 programavimo niuansai
PranešimasParašytas: 2013 03 28, 12:10 Pranešti apie taisyklių pažeidimą Atsakyti su citata
fubs
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
11111111 - 8 bitai - 1 baitas
11111111 11111111 11111111 11111111 - 32 bitai - 4 baitai

_________________
Bandau praplėst žinias
 programavimo niuansai
PranešimasParašytas: 2013 03 28, 12:23 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Elektronix
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
dabar gilinios kaip taimeri teisingai susikonfiguruot ,bet prie topacio paklausiu kaip kintamaji saugot eeprome ? pvz

Kodas:


  int a=5;
  int b=3;
  int c=0;

int main(void);
{


programa

}



kaip tuos a,b,c kintamuosius saugot eeprome ? beja atjungus ir vel ijungus maitinima mikrokontroleriui , reiksmes eeprome islieka ?
 programavimo niuansai
PranešimasParašytas: 2013 03 28, 14:46 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Digix
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Ugniues rašo:
8 bitai, 32 bitai? gal galit papasakot ką nors apie tai? Very Happy


8 bitai tai char
32 bitai long

visa kita padarays C kompiliatorius.

ir koki kompiliatoriu naudoji? jei tai codevision tai norint kintamuosius patalpinti i eeprom tiesiog rasom
eeprom long alarm[16]
o paskui naudijam kaip iprasta.

jei itas kopiliatoriuys tai turbut reikes kazkokios eeprom funkcijos.

sakykim deklaruojam globalu kintamaji
long time;

pertraukimas (){
time++;
if (time>XXXX) time=0;

}

}
 programavimo niuansai
PranešimasParašytas: 2013 03 28, 15:02 Pranešti apie taisyklių pažeidimą Atsakyti su citata
sopkis
Moderatorius
Moderatorius
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje ICQ numeris
O tu datašytą atmegos skaitei? Nes visi pavyzdžiai duoti kaip su eeprom elgtis.
 programavimo niuansai
PranešimasParašytas: 2013 03 28, 23:15 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Elektronix
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Datasheete labai placiai ir sakyciau sudetingai aprasyta , nelabai pagaunu , cia eeprom write funkcion
Kodas:
void
EEPROM_write(
unsigned int
uiAddress,
unsigned char
ucData)
{
/*
Wait for completion of previous write
*/
while(EECR & (1<<EEWE))
;
/* Set up address and data registers */
EEAR = uiAddress;
EEDR = ucData;
/*
Write logical one to EEMWE */
EECR |= (1<<EEMWE);
/* Start eeprom write by setting EEWE */
EECR |= (1<<EEWE);
}


tai gana sudetingai atrodo , Digix sake codevision avr priskirimas
Kodas:
eeprom long alarm[16]


tai nelabai suprantu kam reikia tiek kodo, as naudoju microc pro ir avr studio , tai mikcroC helpe radau pavizdi
Kodas:
EEPROM_Write(address, dData);
tai data mano norima isaugot reiksme , o koki adresa nurodyt ? raso address of the EEPROM memory location to be written. Kaip teisingai pasirinkt ta adresa eepromo ?
 programavimo niuansai
PranešimasParašytas: 2013 03 29, 02:17 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Digix
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
ant tavo microc teks siek tiek daugisu pasidarbuoti kad pasiekti eeproma.

sakykim kad isaugoti 32 bitu kintamaji x masyve numeriu 1

EEPROM_Write(i*4+0, (x>>0)&0xff );
EEPROM_Write(i*4+1, (x >> 8 )&0xff );
EEPROM_Write(i*4+2, (x>>16)&0xff );
EEPROM_Write(i*4+3, (x>>24)&0xff );


nebent yra iskart 32 bitu irasymo skaitymo funkcija

skaitymas bus analogiskas kaip raysmas

kaip parinkti adresa nezinau, bet ko gero gali pradeti nuo nulinio
 programavimo niuansai
PranešimasParašytas: 2013 03 29, 14:21 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Elektronix
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
o jei vietoj unsigned short rasyt long , gal suveiktu ?

example
Kodas:
 
unsigned address = 0x732;
unsigned short dData = 0x55;
...
EEPROM_Write(address, dData);
 programavimo niuansai
PranešimasParašytas: 2013 03 29, 15:13 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Digix
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
nemanau
 programavimo niuansai
PranešimasParašytas: 2013 04 13, 16:36 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Elektronix
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
buvau isvykes tai teko atidet projekteli , dabar gristant pre taimerio.

Jei imu 16mhz kvarca ir prescaler 1024 , tai gaunas

16 000 000 / 1024 =15625 / per sekunde

O jei pvz imt 8mhz kvarca ir prescaler 256

8 000 000 / 256 = 31250 / per sekunde

tai irgi gaunas be kablelio ir sutaupom resursu kazkiek ir kiek supratau atmegai 16mhz ribinis rezimas , ar cia is tikro nieko nesusitaupo ir nieko tokio del 16 mhz ? Ir kaip su tikslumu ? kuriuo atveju laika skaiciuotu tiksliau , ar vienodai? Greicio manau uztektu pilnai ir 8mhz.
 programavimo niuansai
PranešimasParašytas: 2013 04 13, 16:56 Pranešti apie taisyklių pažeidimą Atsakyti su citata
sopkis
Moderatorius
Moderatorius
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje ICQ numeris
Tikslumas nuo daliklio niekaip nepriklauso - koks kvarco tikslumas, toks ir laiko tikslumas. Jei jau labai nori su laikrodiniu žaisti, tai imk tada atmega16, ji prie tosc leidžia laikrodinį kvarcą pajungti, bus tau nuosavas atmegos rtc, nuo darbinio kvarco nepriklausantis.
 programavimo niuansai
PranešimasParašytas: 2013 04 13, 17:05 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Elektronix
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
gal apsirobosiu paprastesniu varijnatu ir tada ta 16mhz kvarca det del greicio. Del laiko skaiciavimo manau patogiausia ,kad laika skaiciuotu 24val, tai butu 86400 sekundes, ir viska skaiciuot sekundem ,o poto laiko isvedima i ekrana galetu iskaiciuot is sekundziu. Bet kaip tai patogiai padaryt? Gal pertraukima kas 86400?
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

GENERAL FINANCING BANKAS

Mokslo festivalis „Erdvėlaivis Žemė

LTV.LT - lietuviškų tinklalapių vitrina

„Konstanta 42“

Technologijos.lt

Buitinė technika ir elektronika internetu žemos kainos – Zuza.lt

www.esaugumas.lt – apsaugok savo kompiuterį!

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
LEGO
Mänguköök, mudelautod, nukuvanker
Thermal monocular
Thermal vision camera,
Night vision ar scope,
Night vision spotting scope
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
GTA 6 Weapons
GTA 6 Characters, GTA 6 Map, GTA 6 Vehicles
FS25 Mods
Farming Simulator 25 Mods
Reklama
‡ 1999– © Elektronika.lt | Autoriaus teisės | Privatumo politika | Atsakomybės ribojimas | Turinys | Reklama | Kontaktai LTV.LT - lietuviškų tinklalapių vitrina
Script hook v, Openiv, Menyoo
gta5mod.net
FS25 Mods, FS25 Tractors, FS25 Maps
fs25mods.lt
Optical filters, UV optics, electro optical crystals
www.eksmaoptics.com
Reklamos paslaugos
SEO sprendimai

www.addad.lt
Elektroninių parduotuvių optimizavimas „Google“ paieškos sistemai
www.seospiders.lt
FS22 mods, Farming simulator 22 mods,
FS22 maps

fs22.com
Reklama


Reklama