Datori un mūsdienīgi sīkrīki

Šķiet, ka pulksteņa kvarca palaišana ir mazsvarīga. Kādas problēmas varētu būt? Ir mikrokontrolleris un divas tā kājas, kas ir īpaši paredzētas kvarca savienošanai. Ir pulksteņu kvarcs. Kvarca lodēšana ir divu sekunžu jautājums. Vēl viena minūte ir nepieciešama, lai programmai pievienotu pāris taimera inicializācijas rindiņas. Šķiet, ka tas arī viss. BET, trīs dienas vadot šo sasodīto pulksteņu kvarcu, es sapratu, ka problēma nav tik vienkārša, kā es domāju.

Un fons bija šāds. Draugs man palūdza, lai uztaisu viņam vienkāršu pulksteni, bez volāniem, ar 7 segmentu indikatoriem. Nekas sevišķš. Mikrokontrolleris tika paņemts ATmega48 (var strādāt ar pulksteņa kvarcu), ātri tika uzrakstīta programma un iegravēts zīmogs. Pēc pulksteņa salikšanas un programmas atkļūdošanas (dinamiskais displejs, pogas utt.), bija pienācis laiks pulksteņa kvarcam. Pirms šī pulksteņa jau pāris reizes savos projektos biju izmantojis pulksteņu kvarcu un nekas neliecināja par nepatikšanām :), taču notika negaidītais - pulksteņu kvarcs kategoriski atteicās iedarbināt. Pavisam!
Mēģinot noskaidrot, kas traucē manam pulksteņa kvarcam darboties, es vispirms pievērsos mikrokontrollera (ATmega48) datu lapai. Bija ļoti maz informācijas par asinhrono režīmu un taimera pievienošanu. Tad es sāku meklēt problēmas risinājumu forumos. Šeit bija dažādi risinājumi un padomi, tostarp rituālās dejas ar tamburīniem, kas arī man īsti nepalīdzēja. Man bija jāizdomā, kas ir kas, izmantojot izmēģinājumus un kļūdas (nejaukt ar “poke metodi”!). Varonīgu pūliņu rezultātā, uzkāpjot uz katra iespējamā grābekļa un nogalinot trīs dienas, dzima praktiska pieredze pulksteņu kvarca savienošanā, ar kuru padalīšos šeit.

Tātad, kāds grābeklis mūs sagaida, laižot klajā pulksteņu kvarcu?

1 Ķēdes dizains.
1.1 Kondensatori.
Mikrokontrollera datu lapā diezgan gari minēts, ka kondensatoriem jābūt savienotiem ar pulksteņa kvarcu, taču parasti ir grūti noskaidrot to kapacitāti. Pulksteņa kvarcs, visticamāk, darbosies bez kondensatoriem, taču labāk tos uzstādīt, tas uzlabos frekvences stabilitāti un palīdzēs kvarcam ātrāk iedarbināties.
Kondensatoru kapacitātei jābūt diapazonā no 12 līdz 22 pF.

1.2 Sliežu izkārtojums kvarcam.
Šeit datu lapa un apnots sniedz mums skaidrus norādījumus. Sliežu ceļiem no mikrokontrollera kājām līdz kvarcam jābūt minimālam garumam, kondensatoru zemējuma sliežu ceļam jābūt atsevišķam, tas ir, caur to nedrīkst plūst svešas strāvas (īpaši augstas strāvas un augstfrekvences ķēdēm).

1.3 Pulksteņa kvarca futrālis.
Pulksteņa kvarca dzelzs korpusu noteikti pielodējiet pie zemes (tam, pie kura pielodēti kondensatori). Nepamatots korpuss darbosies kā antena, ieviešot kropļojumus kvarca darbībā, pasliktinot pulksteņa precizitāti.

1.4. Netīrumi uz dēļa.
Pulksteņu kvarcs ir diezgan smalka lieta un ar pāris megaomu pretestību starp kājām pietiek, lai to apturētu. Kā liecina prakse, šķidruma plūsma, ja to slikti nomazgā, nodrošina pietiekamu pretestību, lai kvarcs nedarbotos. Pēc lodēšanas dēli rūpīgi nomazgājiet. Ļoti bieži plūsmas satur skābi, kas nodrošina vadītspēju starp kājām. Lai neitralizētu skābi, nomazgājiet dēli ar vāju cepamās sodas šķīdumu un rūpīgi nomazgājiet ar tīru ūdeni.

2 Programmēšana.
2.1 Asinhronā taimera režīma inicializācija.

Lai taimeris darbotos no pulksteņa kvarca, tas (taimeris) ir jāpārslēdz uz asinhrono režīmu. Lai pārslēgtu taimeri (gandrīz visiem mikrokontrolleriem tas ir taimeris 2) uz šo režīmu, AS2 bitā jāieraksta 1. Bet ne viss ir tik vienkārši, jums ir jāievēro noteikts palaišanas algoritms. Saskaņā ar datu lapu asinhronā režīma aktivizēšanas procedūra taimeram 2 ir šāda:
1. Atspējot pārtraukumus no taimera/skaitītāja 2 - OCIE2x, TOIE2;
2. Pārslēdziet to uz asinhrono režīmu 1 -> AS2;
3. Ierakstiet jaunas vērtības reģistros TCNT2, OCR2x un TCCR2x;
4. Pagaidiet, līdz tiek atiestatīti karodziņi TCN2UB, OCR2xUB un TCR2xUB;
5. Atiestatīt taimera/skaitītāja 2 pārtraukuma karogus;
6. Iespējojiet pārtraukumus (ja nepieciešams).

Noteikti ievērojiet šo secību. Šeit ir taimera2 asinhronā režīma pareizas inicializācijas saraksts.

/* atspējot pārtraukumus */ cli() ; /* 1. Atspējojiet Timer/Counter2 pārtraukumus, atiestatot OCIE2x un TOIE2. */ TIMSK2 &= ~((1<< OCIE2A) | (1 << OCIE2B) | (1 << TOIE2) ) ; /* 2. Pārslēdzam Timer/Counter2 uz asinhrono režīmu, instalējot AS2. */ ASSR = (1<< AS2) ; /* Dodiet nedaudz laika, lai ģenerators nostabilizējas (var izlaist). */ _delay_ms(1000) ; /* 3. Ierakstiet jaunas vērtības TCNT2, OCR2x un TCCR2B. */ TCNT2 = 0; /* iestatiet ierobežotāju = 128 32,768 kHz / 128 / 256 = pārplūde reizi sekundē. */ TCCR2B |= (1<< CS22) | (1 << CS20) ; /* 4. Lai pārliecinātos, ka pulkstenis ir sācis darboties, pagaidiet, līdz tiek notīrīti biti: TCN2UB, OCR2AUB, OCR2BUB, TCR2AUB un TCR2BUB. */ kamēr (ASSR & 0x1F ); /* 5. Atiestatiet Timer/Counter2 pārtraukuma karogus. */ TIFR2 |= ((1<< OCF2A) | (1 << OCF2B) | (1 << TOV2) ) ; /* 6. Iespējot 2. taimera pārpildes pārtraukumu */ TIMSK2 |= (1<< TOIE2) ; /* iespējot pārtraukumus */ sei() ;

/* atspējot pārtraukumus */ cli(); /* 1. Atspējojiet Timer/Counter2 pārtraukumus, atiestatot OCIE2x un TOIE2. */ TIMSK2 &= ~((1<

2.2 Taimera ierobežojums 2.
Lai 2. taimera pārplūdes pārtraukumi notiktu reizi sekundē, ierobežotāja vērtībai jābūt 128. (128 ierobežotājs * 256 pārplūde = 32768 kvarca frekvence).

2.3. Pulksteņa darbība enerģijas taupīšanas miega režīmā.
Ir ļoti vilinoši pārslēgt mikrokontrolleri miega režīmā pauzēs starp otrajiem pārtraukumiem, tādā gadījumā mikrokontrollera strāva samazināsies līdz 6-7 µA. Šādam gadījumam ir PowerSave zema patēriņa režīms, kurā taimeris 2 turpina darboties no pulksteņa kvarca un pamodina mikrokontrolleri ar pārtraukumu. Algoritms šim darbības režīmam ir vienkāršs: pēc iziešanas no miega režīma ar taimera pārtraukumu, pārtraukuma apstrādes procedūrā mēs “atzīmējam” pulksteni, izejam no pārtraukuma un atkal dodam komandu gulēt (SLEEP). Šeit ir ļoti svarīga nianse. Vēlreiz apskatiet mikrokontrollera datu lapu sadaļā par zema patēriņa režīmiem un asinhronā režīma darbību. Lai taimeris pēc pamošanās sāktu normāli darboties un nākamajā pārtraukumā varētu pamodināt mikrokontrolleri no miega režīma, pirms miega komandas ir jānogaida noteikts laiks. Lai pārliecinātos, ka ģenerators darbojas normāli, jāraksta uz jebkuru taimera reģistru, tādu, kas netraucēs pulksteni (piemēram, OCR2x) un jāgaida, kamēr tiks atiestatīti šī reģistra gatavības karodziņi (OCR2xUB) . Pēc karoga atiestatīšanas varat droši ieslēgt mikrokontrolleri miega režīmā.

/* Timer2 pārplūdes pārtraukuma izejas punkts */ /* Ierakstiet jebkuru vērtību OCR2A. */ OCR2A = 0; /* Pagaidiet, līdz tiek atiestatīts OCR2AUB. */ while(ASSR & (1<

3 Dažādi.
3.1 Neizmantojiet lētu ķīniešu kvarcu(it īpaši tie, kas pielodēti no veciem salūzušiem santīma pulksteņiem). Pat ja viņi strādās, viņiem nebūs precizitātes.

3.2 Un visbeidzot, pa rokai ir vairāki dažādi kvarci, iespējams, ka tavs kvarcs neieslēdzas tāpēc, ka guļ. Mēģiniet to nomainīt.

Šķiet, ka tas ir viss grābeklis, uz kuru es samīdu, palaižot pulksteņa kvarcu. Vai arī ir vēl kas piebilstams?


(Apmeklēts 9 748 reizes, 1 apmeklējumi šodien)

Dažreiz ir noderīgi, ja sistēmā ir pulkstenis, kas skaita laiku sekundēs un pat ar augstu precizitāti. Bieži vien īpašas RTC (Real Time Clock) mikroshēmas, piemēram, . Tas ir tikai papildu gadījums, un dažreiz tas maksā tikpat daudz, cik pats MK, lai gan jūs varat iztikt bez tā. Turklāt daudziem MK ir iebūvēta RTC vienība. Taisnība, ka AVR tā nav, taču tam ir asinhrons taimeris, kas kalpo kā pusfabrikāts pulksteņa izgatavošanai.

Pirmkārt, mums ir nepieciešams pulksteņa kvarcs ar frekvenci 32768 Hz.

Kāpēc kvarcs ir tieši 32768Hz un kāpēc to sauc par sargu? Jā, viss ir ļoti vienkārši – 32768 ir divu jauda. Divi līdz piecpadsmitajai jaudai. Tāpēc piecpadsmit bitu skaitītājs, kas atzīmējas ar frekvenci 32768 Hz, pārplūdīs reizi sekundē. Tas ļauj bez problēmām izveidot pulksteni, izmantojot parasto loģisko plūsmu. Un AVR mikrokontrollerī jūs varat organizēt pulksteni ar sekundēm gandrīz neizmantojot smadzenes, izmantojot perifēros refleksus.

Asinhronais taimera režīms
Atcerieties, kā darbojas taimeri? Pulksteņa frekvence no galvenā pulksteņa ģeneratora (RC ārējais vai iekšējais, ārējais kvarca vai ārējais oscilators) nonāk priekšskaloros, un no priekšskalotāju izejas tas jau noklikšķina uz TCNT reģistra vērtībām. Vai arī ieejas signāls nāk no skaitīšanas ieejas Tn un arī noklikšķina uz TCNT reģistra

Lai to izdarītu, uz tapām TOSC2 un TOSC1 tiek piekārts kvarca rezonators. Zema frekvence, parasti stundu kvarca ar 32768Hz. Tas ir uzstādīts pa labi no kontrollera un savienots ar džemperiem. Turklāt procesora takts frekvencei jābūt vismaz četras reizes lielākai. Mums ir pulkstenis no iekšējā oscilatora 8 MHz, tāpēc šis nosacījums mūs nemaz netraucē :)

Un jums nav jāaprēķina galvenā kvarca ciklu skaits, un, ja tā nav, tad uztraucieties ar iebūvētā RC oscilatora peldošo frekvenci. Pulksteņu kvarca izmērs ir daudz kompaktāks nekā parastajam kvarcam, un tas ir lētāks.


Svarīgs ir arī fakts, ka asinhronais taimeris var tikšķēt pats no pulksteņa kvarca, jo tam nav nepieciešama procesora takts frekvence, kas nozīmē, ka kontroliera kodola (visgrūtākā lieta, kas tam ir) taktiku var izslēgt. pārziemojot procesoru, ievērojami samazinot enerģijas patēriņu un pamostoties tikai tad, kad taimeris pārplūst (1-2 reizes sekundē), lai reģistrētu jaunus laika rādījumus.

Konfigurācija
Lai to ieslēgtu, jums vienkārši jāiestata ASSR reģistra AS2 bits - un viss, taimeris darbojas asinhronā režīmā. Bet šeit ir viena iezīme, kas man vienā reizē maksāja daudz galvassāpes. Fakts ir tāds, ka, darbojoties no sava kvarca, visi iekšējie taimera reģistri sāk sinhronizēties, izmantojot savu kvarcu. Bet tas ir lēns, un galvenā programma var mainīt jau ievadīto vērtību daudz ātrāk, nekā to spēj apstrādāt taimeris.

Tas ir, piemēram, jūs iepriekš iestatījāt vērtību TCNT2, jūsu 32 kHz kuļmašīnas taimeris vēl nav paspējis to sakošļāt, bet jūsu algoritms jau ir skrējis cauri un atkal kaut ko tur ierakstījis - rezultātā, iespējams, atkritumi nonāk TCNT2. Lai tas nenotiktu, ieraksts tiek buferizēts. Tie. jūs domājat, ka ierakstījāt datus TCNT2, bet patiesībā tie nonāk pagaidu reģistrā un nokļūs skaitīšanas reģistrā tikai pēc trīs lēnā ģeneratora pulksteņa cikliem.

OCR2 salīdzināšanas reģistri un TCCR2 konfigurācijas reģistrs arī ir buferizēti

Kā es varu uzzināt, vai dati jau ir ievadīti taimeri vai karājas starpšūnās? Jā, tas ir ļoti vienkārši - izmantojot karodziņus ASSR reģistrā. Tie ir TCN2UB, OCR2UB un TCR2UB biti — katrs ir atbildīgs par savu reģistru. Kad mēs, piemēram, ierakstām vērtību TCNT2, TCNUB kļūst par 1, un, tiklīdz mūsu numurs no starpreģistra pārceļas uz reālo skaitīšanas reģistru TCNT2 un sāk atzīmēties, šis karodziņš tiek automātiski atiestatīts.

Tādējādi asinhronajā režīmā, rakstot uz reģistriem TCNT2, OCR2 un TCCR2, vispirms ir jāpārbauda karogi TCN2UB, OCR2UB un TCR2UB un jāraksta tikai tad, ja tie ir vienādi ar nulli. Pretējā gadījumā rezultāts var būt neparedzams.

Jā, vēl viens svarīgs moments - pārslēdzoties starp sinhrono un asinhrono režīmu, vērtība TCNT skaitītāja reģistrā var tikt zaudēta. Lai būtu droši, mēs pārslēdzamies šādi:

  • Atspējot šī taimera pārtraukumus
  • Pārslēdzieties uz vēlamo režīmu (sinhrono vai asinhrono)
  • Mēs iestatījām taimeri vēlreiz pēc vajadzības. Tie. iestatiet TCNT2 sākotnējo iestatījumu, ja nepieciešams, atkārtoti konfigurējiet TCCR2
  • Ja pārslēdzamies uz asinhrono režīmu, mēs gaidām, līdz tiek atiestatīti visi karodziņi TCN2UB, OCR2UB un TCR2UB. Tie. iestatījumi ir piemēroti un ir gatavi lietošanai.
  • Taimera/skaitītāja pārtraukuma karogu atiestatīšana. Jo ar visiem šiem traucējumiem viņi var nejauši apmesties
  • Iespējot pārtraukumus no šī taimera

Šīs secības neievērošana noved pie neparedzamām un grūti pamanāmām kļūmēm.

Miega režīmi un asinhronais taimeris
Jo asinhronais taimeris bieži tiek izmantots dažādos taupīšanas režīmos, tad rodas viena funkcija, kas veido veselu grābekļa lauku.

Būtība ir tāda, ka taimeris, ko darbina lēns kvarcs, nevar sekot līdzi galvenajam procesoram, un ir daudz atkarību no perifērijas ierīcēm - piemēram, tie paši pārtraukumi. Un, kad procesors guļ, šīs atkarības nevar ieviest, kā rezultātā rodas traucējumi, piemēram, bojāti pārtraukumi vai bojātas vērtības reģistros. Tātad loģika darbam ar asinhrono taimeri un miega režīmu ir jāveido tā, lai starp pamošanos un tā ievietošanu hibernācijas režīmā asinhronajam taimeram būtu laiks izstrādāt vairākus pulksteņa ciklus un izpildīt visus savus uzdevumus.

Piemēri:
Kontrolieris izmanto enerģijas taupīšanas un kodola izslēgšanas režīmu, un to pamodina ar pārtraukumiem no asinhronā taimera. Šeit jāņem vērā fakts, ka, mainot TCNT2, OCR2 un TCCR2 reģistru vērtības, tad hibernācija jāveic TIKAI pēc karogu TCN2UB, OCR2UB un TCR2UB nokrišanas. Pretējā gadījumā rezultāts būs tāds haoss - asinhronais taimeris vēl nav paspējis uzņemt datus no starpreģistriem (tas ir lēns, simtiem reižu lēnāks nekā kodols), un kodols jau ir nogriezts. Un būtu jauki, ja jaunā konfigurācija netiktu piemērota, tas ir muļķības.

Sliktāk ir tas, ka, kamēr tiek pārveidoti TCNT vai OCR reģistri, salīdzināšanas vienības darbība tiek bloķēta, kas nozīmē, ka, ja kodols aizmigs agrāk, salīdzināšanas vienība nekad nesāksies - nebūs neviena, kas to ieslēgtu. Un, salīdzinot, mēs zaudēsim pārtraukumu. Pastāv risks, ka mēs nokavēsim pasākumu un zaudēsim tos līdz nākamajai pamošanās no ziemas miega.
Ko darīt, ja kontrolieri pamodina salīdzināšanas pārtraukums? Tad viņš pilnībā aizmigs. Hmm!
Tāpēc uzņemiet šo kļūdu vēlāk.

Tātad, pirms pāriet uz enerģijas taupīšanas režīmiem, jums noteikti jāļauj asinhronajam taimeram košļāt ievadītās vērtības (ja tās tika ievadītas) un jāgaida, līdz karodziņi tiek atiestatīti.

Vēl viens joks ar asinhrono režīmu un enerģijas taupīšanu ir tāds, ka pārtraukumu apakšsistēma, izejot no hibernācijas, sākas 1 lēnā ģeneratora pulksteņa ciklā. Tātad, pat ja mēs neko neesam mainījuši, mēs nevaram atgriezties ziemas guļas stāvoklī - mēs nepamodīsimies, jo... pārtraukumiem nebūs laika palaist.

Tātad iziešanai no hibernācijas un aizmigšanai, kad to pārtrauc asinhronais taimeris, vajadzētu izskatīties šādi:

  • Pamodos
  • Viņi izdarīja kaut ko vajadzīgu
  • Aizmigt

Un darbības ilgums starp pamodināšanu un aizmigšanu NEDRĪKST BŪT MAZĀKS par vienu asinhronā taimera atzīmi. Pretējā gadījumā apturēta animācija būs mūžīga. Varat iestatīt aizkavi vai to darīt, kā norādīts datu lapā:

  • Pamodos
  • Viņi izdarīja kaut ko vajadzīgu
  • Izklaidei mēs kaut ko ierakstījām jebkurā no buferizētajiem reģistriem. Piemēram, TCNT bija 1, un mēs atkal ierakstījām 1. Nekas nav mainījies, bet notika ieraksts, tika pacelts TCN2UB karodziņš, kas garantēti izturēs trīs lēnā ģeneratora ciklus.
  • Pagaidiet, līdz nokrīt karogs
  • Mēs aizmigām.

Tāpat nav ieteicams uzreiz nolasīt TCNT vērtības, izejot no hibernācijas - to var uzskatīt par haosu. Labāk ir pagaidīt vienu asinhronā taimera atzīmi. Vai arī izjokot, rakstot reģistram un gaidot karoga nokrišanu, kā bija rakstīts augstāk.

Nu, pēdējais, bet svarīgais punkts - pēc jaudas pieslēgšanas vai iziešanas no dziļas hibernācijas, izslēdzot ne tikai kodolu, bet kopumā visu perifēriju, ir ļoti ieteicams izmantot lēnu ģeneratoru ne agrāk kā pēc 1 sekunde(nevis milisekundi, bet veselu sekundi!). Pretējā gadījumā ģenerators joprojām var būt nestabils un reģistros būs vairāk nekārtību un atkritumu.

Un raksta beigās neliels piemērs. Asinhronā taimera palaišana vietnē Atmega16 (kā dēli izmanto daudzstūris)

Projekts ir standarta, pamatojoties uz dispečeru, vienīgā atšķirība ir tāda, ka dispečers ir pārcelts uz timer0, lai atbrīvotu taimeri2.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 int main(void) (InitAll(); // Inicializējiet perifērijas ierīci InitRTOS() ; // Inicializējiet kodolu RunRTOS() ; // Sāciet kodolu. UDR = "R"; // Sākt marķieri, atkļūdošanai SetTimerTask(InitASS_Timer, 1000 ) ; // Tā kā taimeris asinhronajā režīmā // sākas lēni, mēs to darām // Aizkave, lai sāktu taimera inicializāciju. kamēr (1) // Galvenā dispečera cilpa( wdt_reset() ; // Atiestatīt suņa taimeri Uzdevumu pārvaldnieks() ; // Zvanīt dispečeram) atgriezties 0 ; )

int main(void) ( InitAll(); // Inicializēt perifērijas InitRTOS(); // Inicializēt kodolu RunRTOS(); // Sāciet kodolu. UDR = "R"; // Sākt marķieri, atkļūdošanai SetTimerTask(InitASS_Timer ,1000) ; // Tā kā taimeris sākas lēni asinhronajā režīmā, mēs // gaidām, lai sāktu taimeri inicializēt while(1) // Dispečera galvenā cilpa ( wdt_reset(); // Atiestatīt suņa taimeri TaskManager(); // Zvanīt dispečeram ) return 0;

Taimera inicializācijas procedūra asinhronajā režīmā tiek veikta ierobežota stāvokļa mašīnas veidā. Pirmo reizi startējot, tas iestata asinhronā režīma bitu un veic sagatavošanās darbus, pēc tam ar dispečera starpniecību ieslēdzas no jauna, lai dotu kaut kam citam iespēju izslīdēt cauri rindai, nebloķējot sistēmu gaidīšanas laikā.

Nākamajās ievadēs tiek pārbaudīti taimera reģistru gatavie karoga biti. Ja tie visi ir nulles, tad katram gadījumam mēs atiestatām taimera pārtraukuma karogus, lai izvairītos no kļūmēm un viltus pozitīviem rezultātiem, un pēc tam iespējosim nepieciešamo pārtraukumu. Un mēs ejam ārā.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 void InitASS_Timer(void ) ( if (ASSR & (1<< AS2) ) //Ja šī ir otrā ievade, tad( ja (ASSR & (1<< TCN2UB | 1 << OCR2UB | TCR2UB) ) // pārbaudiet, vai ir vismaz viens karoga bits( SetTask(InitASS_Timer) ; // Ja ir, tad nosūtām uz atkārtotu gaidīšanas ciklu) cits // Ja viss ir skaidrs, tad var palaist pārtraukumus( TIFR |= 1<< OCF2 | 1 << TOV2; // Atiestatiet pārtraukuma karogus, katram gadījumam. TIMSK |= 1<< TOIE2; // Iespējot pārpildes pārtraukumu atgriešanās ; ) ) TIMSK &= ~(1<< OCIE2 | 1 << TOIE2) ; // Atspējot taimera 2 pārtraukumus ASSR = 1<< AS2; // Iespējot asinhrono režīmu TCNT2 = 0; TCCR2 = 5<< CS20; // Priekšskalotājs ar 128 x 32768 dos 256 atzīmes sekundē // Kas dos 1 pārplūdes pārtraukumu sekundē. SetTask(InitASS_Timer) ; // Palaidiet to caur dispečeru, lai pieteiktos vēlreiz. }

void InitASS_Timer(void) ( if(ASSR & (1<

ISR(TIMER2_OVF_vect) // Taimera 2 pārplūdes pārtraukums ( UDR = i; i++; )

Varēja izveidot mainīgos, kas satur stundas:minūtes:sekundes un noklikšķināt uz tiem mainīgajiem ar visu to stundu/minūtes pārpildes loģiku, bet es biju pārāk slinks. Un tāpēc viss ir skaidrs.

Šajā īsajā esejā ar fotogrāfijām es plašākai sabiedrībai parādīšu, kā ārstēt diezgan izplatītu digitālo elektronisko pulksteņu “sāpumu” - neprecizitāti. Pulkstenis var aizkavēties vai steigties, un visbiežāk mēs nepievēršam uzmanību nelielām kļūdām, bet, kad pulkstenis atpaliek par 5 (piecām) minūtēm dienā, tas sāk kaitināt.
Vai esat gatavs? Aiziet!

Ievads

Šo pulksteni iegādājos, lai justos nostalģija pēc vecajiem padomju laikiem, kad saule bija zaļāka un zāle spožāka... vai otrādi?.. vienalga! Galvenais, ka nebija prieka - pulkstenis bija pretīgi aiz muguras. Vairāk nekā 5 minūtes dienā. Man ir jādziedē, es nodomāju.



Skatoties uz priekšu, es atzīmēju, ka es nesāku strīdu, simts rubļi nav tā pati nauda. Problēma nav pārdevējā, kas nosūtīja nekvalitatīvu preci. Problēma ir prece, kuru pārdevējs nekādi nevar pārbaudīt - vai ķīnietis/sieviete noteikti nesēdēs un nemērīs gājiena precizitāti?

Lai ārstētu pulksteni mums ir nepieciešams:

Obligāti
+ lodāmurs. vēlams ne ļoti jaudīgs, pietiek ar 25-40 vatiem. 60 jau būs par daudz.
+ rezerves kvarca rezonators. Pārdod vai nu Ķīnā, vai jebkurā radio veikalā. Tas ir lēts un tiek saukts par "pulksteņu kvarcu".
+ plāns Phillips skrūvgriezis vai plāns plakangalvas skrūvgriezis. vēlams krusts.

Vēlams
+ pincete ar asiem spīlēm - paņem skrūves (jā korpuss plastmasa, rāmis arī plastmasa. Skrūves visur)
+ labs apgaismojums un stacionāra palielināmā stikla vai juveliera/pulksteņmeistara brilles, lai skaidri redzētu Sarkangalvītes pulksteni.

Izjauksim pulksteni

Atskrūvējiet četras skrūves, kas tur aizmugurējo vāciņu. Uzmanīgi noņemiet vāku un noņemiet pjezoelektrisko rezonatoru (augstfrekvences skaļruni). Mēs neķepām čīkstētāju ar pirkstiem, mēs to turam aiz sānu malām un metāla pamatnes.


Ņemam vērā, ka pulkstenim nav aizsargblīves, tāpēc pulksteņa iekšpusē nokļūs ūdens un sviedri. Saprotam, ka ķīnieši lētuma dēļ taupa uz visu, kas nozīmē, ka stikls visticamāk sēž uz abpusējas lentes un pogām nav gumijas blīves. Tas nozīmē, ka pulkstenis būs jānoņem sliktos laikapstākļos un fiziska darba laikā.

Izņemam pulksteni no korpusa.


Mēs noliekam malā korpusu, aizmugurējo vāciņu, aizmugurējā vāciņa skrūves un tweeter.

Izskrūvējam četras skrūves - trīs tur 2016. gada litija bateriju, viena tur atsperes cilni signāla nosūtīšanai uz tweeter.


Liksim šo visu malā. Apsveram maksu. Jūs nevarat redzēt vairāk skrūves, kas nozīmē, ka tas ir labi.

Izmantojot pinceti, uzmanīgi noņemiet dēli no plastmasas turētāja.


Klipa iekšpusē mēs redzam vadošu gumijas joslu, kas pārraida signālu uz LCD un pašu LCD indikatoru.
Mēs nepieskaramies gumijai ar pirkstiem, jo ​​tam nav nozīmes. Ja ieklīst kāds plankums vai netīrumi, indikatoram kāds segments nokrīt un atkal jājauc... kas pie velna...
Zilajā siltuma saraušanās zonā ir spole, kas rada skaņu. Tam arī nav nepieciešams pieskarties. To ir viegli sabojāt, jo elektroinstalācija ir plānāka par matiņu.
Bet metāla cilindrs uz kājām ir mūsu kvarca rezonators, kas jāmaina.

Kvarca nomaiņai nolēmu izmantot donorkvarcu no vecās mātesplates, kura nomira pirms kādiem desmit gadiem un lēnām to sadalu mazos komponentos.


Kvarcs šeit ir nedaudz lielāks nekā pulksteņos.
Šeit salīdzinājumam jau ir pielodēts kvarcs no mātesplates un pulksteņa plate.


Uz tāfeles uzklājam kvarcu. Der. Ieliekam būrī kvarcu, arī der! Lieliski! Mainīsimies!

Lai nomainītu, vienkārši atlodējiet vienu kvarcu un pielodējiet citu.
Nav polaritātes, nav iezīmju. Procedūra ir vienkārša un neprasa īpašu kvalifikāciju.


Voila! nomainīts kvarcs. Mēs izlīdzinām kvarca korpusu tā, lai tas būtu tieši zem tāfeles un nepieskartos akumulatoram.

Atkārtota montāža

Mēs saliekam mehānismu apgrieztā secībā - novietojam dēli uz turētāja, tur ir vadošās tapas. Mēs uzliekam akumulatoru uz tāfeles, mīnus vērstu uz leju.


Novietojiet kontaktu bloku akumulatora augšpusē. Šajā pulkstenī tas vienlaikus satur akumulatoru un ir pogu kontaktu grupa. Piestipriniet ar trim skrūvēm. Pēc tam atsevišķs kontakts tweeter. Mēs to arī pieskrūvējam.

Apgriežam kluci un skatāmies – pulkstenim jāsākas. Ja tas nenotiek, tas nozīmē, ka vai nu akumulators ir apgriezts otrādi, vai kvarcs nav pielodēts, vai arī tas nedarbojas, vai arī dēlis ir bojāts statiskās elektrības dēļ :)
Nu, ja viss darbojas, uzmanīgi ievietojiet dēli pulksteņa korpusā, centrējiet to tā, lai cipari būtu paralēli malai, pēc tam uzstādiet pīkstienu atpakaļ, uzskrūvējiet vāku...

Labi, tagad viss ir beidzies!
Mēs esam pārvarējuši lielu problēmu)))

Dienas laikā pulkstenis nav kustējies ne uz priekšu, ne atpakaļ, tas darbojas vienmērīgi un precīzi. Skatīšos vēl un tad ziņošu par precizitāti.

Jāteic, ka kvarca nomaiņas procedūra visiem kvarca pulksteņiem ir vienāda - digitālajiem, ciparnīcas. Bet, jāatceras, ka lielākā daļa ķīniešu kvarca pulksteņu tiek montēti uz plastmasas kniedēm, kuras kausē ar “sēnēm”, t.i. patiesībā, kad pulkstenis ir izjaukts, to ir ļoti grūti salikt no jauna.
Nu nozīme ir arī kvarca izmēram - ja kvarcs no mātesplates nederētu izmērā, tad būtu jāmeklē cits, mazāks.

Ārpus šīs “Murzilkas” rāmja atradās plēve, kuru ķīnieši neizņēma no LCD, ieliekot to turētājā. Es noņēmu šo filmu, un ekrāna kontrasts nedaudz palielinājās. Filma ir gandrīz neredzama, bet tā bija manā pulkstenī.

UPD .
Pēdējo četru dienu laikā, kopš kvarca nomaiņas, pulkstenis ir pavirzījies par divām sekundēm uz priekšu. 15 sekundes mēnesī.
Manuprāt, lētam pulkstenim un bezmaksas kvarcam rezultāts ir apmierinošs. Personīgi mani tas pilnībā apmierina)))
Jūs, protams, varat meklēt kvarca pulksteņus par santīmiem krāmu tirgos, paņemt no turienes kvarca kaudzi un eksperimentēt ar precizitāti... bet mēs to atstāsim perfekcionistiem un cietajiem ķēmiem)))

Komentāros ir sniegta recepte, kā precīzāk noregulēt precizitāti, lodējot miniatūru keramikas kondensatorus. Kā alternatīva kvarca nomaiņai tas ir diezgan dzīvotspējīgs un saprātīgs. Galvenais, lai ir vieta, kur šos kondensatorus novietot. Nu, viņu klātbūtne...

Un vispār, draugi, galvenais nav apskats, galvenais ir komentāri)))
Paldies visiem par vērtīgajām idejām un dažādām diskusijām)))

Plānoju pirkt +16 Pievienot pie favorītiem Man patika apskats +91 +166

Ja pamanāt kļūdu, atlasiet teksta daļu un nospiediet Ctrl+Enter
DALĪTIES:
Datori un mūsdienīgi sīkrīki