ANALGINS Posted March 31, 2010 Report Share Posted March 31, 2010 tatad ka jau taitlaa rakstiju vaig uztaisit kko lidzigu taimerim, kurs gaida piemeram 5 sekundes uz kadu darbibu kas var atkartoties, un tad iet talak.. doma tada tada ir poga, kuru nospiezhot iet taa laika atskaite 5sec un mainigajam a+1;, ja tas laika poga tiek nospiesta atkartoti tad a=a+1; problema manuprat ir arii tur ka mikrokontolieris nesaglaba ievaditos pogu spiedienus ilgak ka vienu ciklu, principa man to arii nevaig (lai saglabatu) bet ja gribesu nakotne taisit kkadus menju tad to gan varetu ievajadzeties kadam ir kadas idejas vai man vienkarsi jagaida uz beefa komentaru ? Link to comment Share on other sites More sharing options...
worm Posted April 1, 2010 Report Share Posted April 1, 2010 nēesmu baigais eksperts, bet man šķiet, ka tev jāizmanto vai nu atsevišķs threads vai arī cikls ar sleep() Link to comment Share on other sites More sharing options...
samuray Posted April 2, 2010 Report Share Posted April 2, 2010 iebūvētas taimera funkcijas nav? kas tas ir par mikrikontrolieri? Link to comment Share on other sites More sharing options...
BOT^a Posted April 2, 2010 Report Share Posted April 2, 2010 (edited) void Klik() { atkal: tavadarbiiba; Sleep(50); goto atkal; } atceramies par globaalu mainiigo Edited April 2, 2010 by BOT^a Link to comment Share on other sites More sharing options...
ANALGINS Posted April 3, 2010 Author Report Share Posted April 3, 2010 neesmu tads hax koderis lai zinatu visu, iebuvetie taimeri ir, tikai nemaku tos izmantot, nav piemeru retardien izmantoju atmega16 mikreni Link to comment Share on other sites More sharing options...
worm Posted April 5, 2010 Report Share Posted April 5, 2010 ja tev mikrenei ir kaut kāds iebūvēts taimeris, tad saglabā iekš mainīgā "a" timestampu vai arī whatever tev tā mikrene dod ārā... iespējams, ka tas tas taimeris dod ārā vienkārši kaut kādu skaitli, ko tu vari izmantot kā timestampu... un tad kad tu otro reizi nospied pogu, tad salīdzini tekošo timestampu ar to, kas ir saglabāts mainīgajā "a" un izdari secinājumus Link to comment Share on other sites More sharing options...
ANALGINS Posted April 6, 2010 Author Report Share Posted April 6, 2010 elfas foruma kads labs cilveks padalijas ar kodu, ko pirms gadiem buvejis, tas ir japielabo, jaizmet ara paris nevajadzigas fiichas, problema sakas tur ka kods rakstits asamblerii, ir kadas labas lapas kur palasit kaut ko? kadu tutoriali or smtg? guglei vel neprasiju atbildes.. Link to comment Share on other sites More sharing options...
BOT^a Posted April 6, 2010 Report Share Posted April 6, 2010 http://www.masm32.com/board/index.php Link to comment Share on other sites More sharing options...
0xDEAD BEEF Posted April 6, 2010 Report Share Posted April 6, 2010 BEidz taču ākstīties! Tagad asmu mācīsies! Ne sūda tas tev nepalīdzēs! Tas uzdevums ir vienkāršāks par vienkāršu un tur nav jāpišās ar ASMu! DOH... Worm - mikrokontrolieriem uz taimer eventa (overflowo skaititājs) generējas interupts. Tā patās var nolasīt skaitītāja vērtību ik pa laikam! Analgin - tu daudz nepisies, bet iemācies strādā ar taimeriem un lasīt dokumentāciju! Kā tu domā vispār kaut ko izdarīt, ja neesi iemācijies pat lasīt? Tev vajag 16 bit taimeri uzstādīt. Uzliec viņam tādu prescaleru, lai sanāktu pie 65000 tikiem uz 125ms (500 rpm). Proti - ja tev būs 1Mhz kristāls, tad tev jāliek prescaleris 2, jo 1000000 / 8 / 65000 = ~2. Tad tu varēsi izdomāt kaut kādu if un kurš noteiks, kad bija dzirkstele. KOpā ar dzirksteli nolasīsi no tā timer reģistra vērtību + uzstādīsi to reģistru pa 0. Bļā es vienkārši nesaprotu, kāpēc tu vispār to dari, ja nemāki darīt.. :/ Beefs Link to comment Share on other sites More sharing options...
ANALGINS Posted April 6, 2010 Author Report Share Posted April 6, 2010 Worm - mikrokontrolieriem uz taimer eventa (overflowo skaititājs) generējas interupts. Tā patās var nolasīt skaitītāja vērtību ik pa laikam! Analgin - tu daudz nepisies, bet iemācies strādā ar taimeriem un lasīt dokumentāciju! Kā tu domā vispār kaut ko izdarīt, ja neesi iemācijies pat lasīt? Tev vajag 16 bit taimeri uzstādīt. Uzliec viņam tādu prescaleru, lai sanāktu pie 65000 tikiem uz 125ms (500 rpm). Proti - ja tev būs 1Mhz kristāls, tad tev jāliek prescaleris 2, jo 1000000 / 8 / 65000 = ~2. Tad tu varēsi izdomāt kaut kādu if un kurš noteiks, kad bija dzirkstele. KOpā ar dzirksteli nolasīsi no tā timer reģistra vērtību + uzstādīsi to reģistru pa 0. Bļā es vienkārši nesaprotu, kāpēc tu vispār to dari, ja nemāki darīt.. :/ Beefs vis jau butu baigi skaisti, javien tu nerunatu tik gudri, un es saprastu ko tu stasti kas ir prescaleru? ja domaju izmantot 1mhz kristalu, jo tas ir pilnigi pietiekams ja esmu aprekjinajis frekfrenci.. Link to comment Share on other sites More sharing options...
0xDEAD BEEF Posted April 6, 2010 Report Share Posted April 6, 2010 Taimeris 16 bitu ir mainigais (2 8-bit registri Hi un Low), kurš ik pēc kaut kāda laika palielinas par 1. Tas, kas lieka palielnāties par 1, to sauc par clock source. Piemēram - clock source var būt external, kas nozīmē, ka taimeris palielināsies par 1, kad kāds clock source pins mainīs stāvokli no 0 uz 1 (vai otrādi, un to var konfigurēt). Tā patās clock source var būt kristāls, kurš darbina čipu. Tādā gadijumā pie 1Mhz kristāla 16bit taimeris apgrieztos uz rinķi ~20x sekundē, jo 16bit = 0 - 65535. Tādēļ var izmantot preskaleri, kas ir tā kā dalītājs. Piemēram - 2x preskaleris palielinās taimeri par 1 uz katru 2otro takti 500k reizes sekundē. U.t.t. Beefs Link to comment Share on other sites More sharing options...
ANALGINS Posted April 6, 2010 Author Report Share Posted April 6, 2010 mhm paldies beef, turpinashu rakties talak, ja tikshu pie shemas kas ir tam asm kodam, tad jau bus vieglak domat talak un veikt kadus testus.. Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now