 |

|
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 03, 12:10. Visos datos yra GMT + 2 valandos.
|
|
|
 |
Forumas » Elektronika žaliems » apie atmega 16
|
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š 3 Pereiti prie 1, 2, 3 Toliau |
|
 |
 |
 |
apie atmega 16 |
Parašytas: 2015 07 06, 14:54 |
|
|
|
Sveiki. turiu viena svarbu man klausima, gal kas zinos atsakyma
pries 4 metus programavau atmega 16 is elektonika.lt schemu arhyvo.sviesos dijodus uzdegt uzgesint.beganti girlianda ir t.t. tas cipas ir pragulejo visa ta laika nenaudojamas. dabar paprogramuoju su flowcode5-6.butent ta cipa uzprogramavus su realiais laikais t.y"delay 50ms ar 10s"tiek ir velins nesvarbu kurioj poprogramej.viskas liuks. bet irasant I nauja cipa...tie laikai issiderina,
jeigu kurioj nors poprogramej ira daugiau duomenu skaitymo PA analog input ar PC mygtuku skaitymo nesvarbu aktyvus ar ne,laikas vistiek issiderines...
naudociau interuptus,bet sudetinga,juo labiau KODEL tas senas cipas veikia.naudoju 4Mgz kvarca.galbut as neyjungiu ext.rezonator.bet programoj buna parinktas ext.medium.q.rezonator.
Patarkit kaip isprest sia problema. tik bukit geri nekomentuokit flowcode,
zinau kad C kalbos zinovams flowcode nepatinka.ACIU  |
|
|
|
|
 |
 |
apie atmega 16 |
Parašytas: 2015 07 06, 15:48 |
|
|
|
nustatyk tinkamus fuse bitus (gali is "senos" atmegos nuskaityti) |
|
|
|
|
 |
apie atmega 16 |
Parašytas: 2015 07 06, 18:40 |
|
|
|
Naudojant 1mhz, tai 1ms ir bus 1ms. Naudojant 4mhz, 1ms delay bus 0.25ms. Jei nori kad laikas atitiktų, rasyk pačiame programos viršuje, F_CPU 4000000. Bet PAČIAM VIRSUJE! nes jei parasysi po util delay libo, ji inicializuosis nežinodama koks cpu speed yra. Prisimink, kad visos programos yra vykdomos nuo viršaus ir cpu neturi jokios minties, kas eis toliau jei to dar nepriėjo. |
|
|
|
|
 |
apie atmega 16 |
Parašytas: 2015 07 06, 22:22 |
|
|
|
AlgisL rašo: |
nustatyk tinkamus fuse bitus (gali is "senos" atmegos nuskaityti) |
aciu kad padetate.fuse bitus tokius ir nustatineju kaip is elektronika.lt schemu archyvo apie avr.na kur ponyprog pavyzdys yra.cia bus problema su flowcode nustatymais.bet kaip pvz kodel ta pati programa rasyta su flowcode senam cipe veikia realiu laiku o naujam ne?  |
|
|
|
|
 |
 |
apie atmega 16 |
Parašytas: 2015 07 06, 22:41 |
|
|
|
Ba1tuks rašo: |
Naudojant 1mhz, tai 1ms ir bus 1ms. Naudojant 4mhz, 1ms delay bus 0.25ms. Jei nori kad laikas atitiktų, rasyk pačiame programos viršuje, F_CPU 4000000. Bet PAČIAM VIRSUJE! nes jei parasysi po util delay libo, ji inicializuosis nežinodama koks cpu speed yra. Prisimink, kad visos programos yra vykdomos nuo viršaus ir cpu neturi jokios minties, kas eis toliau jei to dar nepriėjo. |
Man parasius delay 250ms delsia 1s.na tai man netrugtytu.bet kuo daugiau duomenu skaito,isvedineja I lcd tuo daugiau lagina.pabreziu su senu cipu taip nebuna gal paciam senam cipe ira ijungta vidinis rezonatorius ir perrasinejant jo neisjungia.tarkim kaip pavyzdys: paleistai programai bunant ramybes busenoj nuspaudus mygtukaPA0 aptikus pakitima nueina I loop while
isveda duomenis I lcd ir pypsi kas 50ms po 5ms. laukia vel pakitimo nuspaudus mygtuka gryzta I pagrindine programa.Ta pati pakartojam su antru mygtukuPA1 aptikus pakitima nueina I loop while kita kilpa.velgi isveda duomenis I lcd ir laukia PA1
paspaudimo ir tuo paciu skaito PA0 mygtuka ar pakito ar ne,pypsejimas nustatytas kas 50ms po 5ms.bet jo trukme jau neatitinka kaip is kilpos PA0.
va cia ir nesuprantu kodel taip yra.su senu cipu taip nera  |
|
|
|
|
 |
 |
apie atmega 16 |
Parašytas: 2015 07 07, 00:25 |
|
|
|
Nu jeigu tu naudoji 4MHz isorini osciliatoriu, o viduj ten yra koks 8MHz RC su dalikliu is 8, tai galu gale mikrovaldiklis veikia 1MHz - keturis kartus leciau, nei tu tikiesi. |
|
|
|
|
 |
apie atmega 16 |
Parašytas: 2015 07 07, 18:54 |
|
|
|
Citata: |
o viduj ten yra koks 8MHz RC su dalikliu is 8 |
tai jam išvis dzin, kas ten išorėje: ar 4Mhz, ar kas tik nori.
bet man kitkas keista: konstruktorius įsigijo ir naudoja atmega, bet nežino, ar viduje gaminamas taktas, ar išorėje. kaip taip gali būti? juk čipas su vidiniu rezonatoriummi ir kainuoja geroookai kitaip ir markiruojamas atitinkamai, argi ne? |
|
|
|
|
 |
apie atmega 16 |
Parašytas: 2015 07 07, 19:06 |
|
|
|
a1girdas rašo: |
Citata: |
o viduj ten yra koks 8MHz RC su dalikliu is 8 |
tai jam išvis dzin, kas ten išorėje: ar 4Mhz, ar kas tik nori.
bet man kitkas keista: konstruktorius įsigijo ir naudoja atmega, bet nežino, ar viduje gaminamas taktas, ar išorėje. kaip taip gali būti? juk čipas su vidiniu rezonatoriummi ir kainuoja geroookai kitaip ir markiruojamas atitinkamai, argi ne? |
Kad lyg ir visos tos atmega16 turi vidini RC osciliatoriu. Skirtingai markiruojami nebent skirtingi korpusai arba skirtingi temperaturiniai diapazonai. |
|
|
|
|
 |
apie atmega 16 |
Parašytas: 2015 07 07, 19:12 |
|
|
|
Citata: |
vidini RC osciliatoriu. |
taip. R išorėje, C išorėje, viduje generatorius. t.y. keletas Šmito trigerių nuosekliai.
turėjau omeny kvarcinį rezonatorių arba osciliatorių, t.y. generatorių. kvarcinį. Ir tie dar nevienodi būna - termostabilizuoti, harmonikiniai, pigūs ... |
|
|
|
|
 |
 |
apie atmega 16 |
Parašytas: 2015 07 07, 21:38 |
|
|
|
a1girdas rašo: |
Citata: |
vidini RC osciliatoriu. |
taip. R išorėje, C išorėje, viduje generatorius. t.y. keletas Šmito trigerių nuosekliai.
turėjau omeny kvarcinį rezonatorių arba osciliatorių, t.y. generatorių. kvarcinį. Ir tie dar nevienodi būna - termostabilizuoti, harmonikiniai, pigūs ... |
Kad as kaip suprantu viskas ten viduje. Datasheet'as sako taip:
Kodas: |
Internal Calibrated RC Oscillator |
O jo plaukiojimo charakteristikos yra 194-196 paveiksleliuose.
Ten taip pat raso taip:
Kodas: |
If the device is clocked by the Internal Oscillator, it is no need to connect a clock source to the XTAL1 pin. |
Man rodos yra galimybe ir isorine RC grandinele prijungti, bet nesu mates, kad kas butu taip padares. |
|
|
|
|
 |
 |
apie atmega 16 |
Parašytas: 2015 07 08, 21:06 |
|
|
|
Citata: |
kaip suprantu viskas ten viduje |
greičiausiai, taip ir yra.
pavadinimas klaidinantis.
Nei R, nei rimto C kristale nėra, galėtų elementariai rašyti "oscilator".
dėkui, kad padėjai išsiaiškinti. |
|
|
|
|
 |
 |
apie atmega 16 |
Parašytas: 2015 07 11, 13:33 |
|
|
|
a1girdas rašo: |
Citata: |
o viduj ten yra koks 8MHz RC su dalikliu is 8 |
tai jam išvis dzin, kas ten išorėje: ar 4Mhz, ar kas tik nori.
bet man kitkas keista: konstruktorius įsigijo ir naudoja atmega, bet nežino, ar viduje gaminamas taktas, ar išorėje. kaip taip gali būti? juk čipas su vidiniu rezonatoriummi ir kainuoja geroookai kitaip ir markiruojamas atitinkamai, argi ne? |
ATmega serija beveik visos turi vidinį taktinį generatorių (net tiesa pasakius nebuvau susidūręs, kuri neturėtų), ATtiny serija irgi dauguma turi. Kainos jų dėl to nė kiek ne didesnės.
Geriausia naudotis AVR Studio, ten fuse bitai lengvai nusistato ir šiaip suderinta viskas su ATMEL gaminiais.
1. Patikrinti <#define F_CPU ...>, turi būti nurodytas teisingas dažnis, o ši eilutė pačiame viršuje virš kitų "#define...".
2. Patikrinti ar neįjungtas CKDIV8 fuse bitas.
3. Patikrinti iš kur taktinio dažnio šaltinis ir koks jo dažnis (vidinį galima rinktis 1; 2; 4; 8 MHz su ir be daliklio iš 8 ).
4. Jei naudoji <_delay_ms();> funkciją, tai atkreipk dėmesį į jos maksimalią užduodamą vertę, jei gerai pamenu max laikas ms yra 255 ms, jei ilgesnis gali pradėti grybaut. Jei reikia ilgesnio darom taip:
Kodas: |
#define F_CPU 4000000UL //Šitas define kur minėjau, pačiame viršuje ir nurodomas realus dažnis (jei vidinis nustatytas 8MHz ir įjungtas daliklis iš 8 tai rašom 1000000UL)...
//...
void lauk(unsigned short int ms )
{
for (unsigned short int i = 0; i < ms; i++)
{
_delay_ms(1);
}
}
|
Tada gali rašyti <lauk(nors ir 86400000);> ir tau lauks 1 parą...
P.S. Galima išorėje jungti kvarca, keramikinį rezonatorių, RC grandinėlę ar net 555 taimerį, tik su fuse teisingai reikia sužaisti. Bet asmeniškai nematau prasmės nei keraminį nei RC dėti išorėje, nes vidinio tikslumas irgi gana geras, nebent reikia kokio egzotiško dažnio ar labai žemo dažnio, tada gal ir racionalu juos dėti. Pats dažnai naudoju vidinį ir bėdų neturiu, o jei reikia tikslumo ar RTC su teisingu dalinimusi tai dedu kvarcą. ATtiny841 ir ATtiny441 (vieni iš naujausių tiny serijos) turi viduje netgi pavadinčiau egzotišką "Ultra low power RC" generatorių, kuris galima nustatyti dirbti 32-512 kHz, tik tikslumas +-30%, bet vis tik MV tokiu režimu suvartoja tik 7uA prie 1,7V maitinimo (260 p).
http://www.atmel.com/Images/Atmel-8495-8-bit-AVR-Microcontrollers-ATtiny441-ATtiny841_Datasheet.pdf |
|
_________________ Nėra geriau už IBM/Lenovo ThinkPad! |
|
|
|
 |
 |
apie atmega 16 |
Parašytas: 2015 07 11, 15:07 |
|
|
|
*Ričardas rašo: |
void lauk(unsigned short int ms )
{
for (unsigned short int i = 0; i < ms; i++)
{
_delay_ms(1);
}
}
[/code]
Tada gali rašyti <lauk(nors ir 86400000);> ir tau lauks 1 parą...
|
Kaip short int gali turėti reikšmę 86400000? |
|
|
|
|
 |
 |
apie atmega 16 |
Parašytas: 2015 07 12, 03:13 |
|
|
|
hencia rašo: |
*Ričardas rašo: |
void lauk(unsigned short int ms )
{
for (unsigned short int i = 0; i < ms; i++)
{
_delay_ms(1);
}
}
[/code]
Tada gali rašyti <lauk(nors ir 86400000);> ir tau lauks 1 parą...
|
Kaip short int gali turėti reikšmę 86400000? |
Jep... Atsiprašau, geras pastebėjimas, perlenkiau. Bet esmė išlieka ta pati.
EDIT:
Gal pradedančiam pravers... Naudokit #include <inttypes.h>.
Tai yra biblioteka skirtingo ilgio int kintamiesiems, kaip pvz.:
Kodas: |
Fixed width integer signed unsigned
8 bit int8_t uint8_t
16 bit int16_t uint16_t
32 bit int32_t uint32_t
64 bit int64_t uint64_t |
https://en.wikibooks.org/wiki/C_Programming/C_Reference/inttypes.h |
|
Paskutinį kartą redagavo *Ričardas, 2015 07 12, 14:14. Redaguota 2 kartus(ų) _________________ Nėra geriau už IBM/Lenovo ThinkPad! |
|
|
|
 |
 |
apie atmega 16 |
Parašytas: 2015 07 12, 10:08 |
|
|
|
*Ričardas rašo: |
Jep... Atsiprašau, geras pastebėjimas, perlenkiau. Bet esmė išlieka ta pati. |
Beje, negalima naudoti funkcijos _delay_ms(i); su kintamuoju - tikrai neveiks. O reikia naudoti, kaip *Ričardas parašė (su for) |
|
|
|
|
|
 |
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 |
|

|
 |