Cov txheej txheem:

Arduino - Kev cuam tshuam ib ntus: 4 Kauj Ruam
Arduino - Kev cuam tshuam ib ntus: 4 Kauj Ruam

Video: Arduino - Kev cuam tshuam ib ntus: 4 Kauj Ruam

Video: Arduino - Kev cuam tshuam ib ntus: 4 Kauj Ruam
Video: #SanTenChan читает гнома из второй серии книги Сани Джезуальди Нино Фрассики! 2024, Kaum ib hlis
Anonim
Arduino - Kev cuam tshuam ib ntus
Arduino - Kev cuam tshuam ib ntus

Cov Lus Qhia no yog hais txog kev siv kev cuam tshuam ib ntus rau lub sijhawm hauv Arduino cov haujlwm. Nov yog ib qib rau cov tub ntxhais kawm Arduino programmer uas paub tias Arduino tuaj yeem ua tau ntau dua, tab sis tsis paub zoo tias yuav ua li cas.

Yog tias muaj teeb meem kev ua haujlwm Kuv xav tias koj siv ib lossis ntau lub sijhawm qeeb () ua haujlwm. Qhov ua kom yuam kev yog tshem tawm qhov ncua () muaj nuj nqi (s) thiab hloov qhov cuam tshuam. Kev ncua () ua haujlwm yuam Arduino kom tsis ua dab tsi thaum tos kom ncua () ua kom tiav. Kev siv qhov cuam tshuam tso cai rau koj txoj haujlwm kom ua lwm yam thaum tos txog qhov kawg ntawm kev ncua. Feem ntau muaj ntau qhov tsis siv sijhawm tuag uas tuaj yeem siv rau lwm yam thaum siv qeeb (). Siv kev cuam tshuam daws qhov teeb meem no.

Kauj Ruam 1: Txheeb Tus Kheej

1. Ntxiv tus cuam tshuam cuam tshuam rau koj qhov haujlwm. Tsuas yog theej thiab muab tshuaj txhuam tso rau qhov chaw saum toj no teeb tsa ();

const unsigned ntev TIMER0_COUNT = 500; // 500 msec timer ncua sijhawm

// TIMER0 cuam tshuam cuam tshuam tus neeg ua haujlwm hloov pauv lub sijhawm bool = cuav; ISR (TIMER0_COMPA_vect) {zoo li qub tsis tau kos npe ntev = 0; yog (++ suav> TIMER0_COUNT) {suav = 0; sij hawm = tseeb; // sijhawm tau teem rau qhov tseeb txhua TIMER0_COUNT ms} // (lub sijhawm yuav tsum tau muab tshem tawm hauv cov haujlwm niaj hnub)}

Kauj Ruam 2: Teem Sijhawm Sijhawm Sijhawm

2. Teem sijhawm ncua sijhawm. Qhov kev ua npua qub no nws tus kheej mus rau TIMER0 cuam tshuam, uas tau teeb tsa hluav taws txhua ~ 1 msec.

Koj qhov "ntu" yog tus lej TIMER0 cuam tshuam rau txheej txheem. Txhua lub sijhawm yog ~ 1 msec, yog li koj tau teeb tsa pes tsawg TIMER0 cuam tshuam los suav ua ntej qhib koj lub sijhawm. IOW, teeb tsa qhov sib txawv TIMER0_COUNT rau txawm li cas los xij ntau milliseconds koj xav tos. Piv txwv, siv 500 rau ib nrab ntawm ib pliag. Siv 3000 rau 3 vib nas this.

Kauj Ruam 3: Kev cuam tshuam pib ua ntej

3. Ntxiv qhov "TIMER0 initialization" code rau koj teeb () txoj kev. Ib zaug ntxiv, tsuas yog theej thiab muab tshuaj txhuam tso rau hauv teeb tsa ().

// *** TIMER0 initialization ***

cli (); // tua txhua qhov cuam tshuam TIMSK0 = 0; // tua lub sijhawm timer0 rau qis qis dua OCR0A = 0xBB; // kev txiav txim siab cuam tshuam suav TIMSK0 | = _BV (OCIE0A); // piggy rov qab mus rau cuam tshuam sei (); // tig cuam tshuam rov qab rau

Kauj Ruam 4: Qhov Twg Ntxiv Koj Li Code

4. Ntxiv qhov "sijhawm tshuaj xyuas" cov cai rau koj lub voj () txoj kev. Luam thiab muab tso rau hauv lub voj ().

yog tias (lub sijhawm) {

sij hawm = tsis tseeb; // ua ib yam dab tsi ntawm no}

"Lub sij hawm = tsis tseeb;" kab tseem ceeb. Yog tsis muaj kab no kab "ua ib yam dab tsi ntawm no" kab (s) yuav ua tiav txhua lub sij hawm qhov kev zov me nyuam ua lub voj ().

Tau kawg, koj hloov koj tus kheej cov dej num hauv kab "ua ib yam dab tsi ntawm no" kab. Pib tawm nrog luam tawm qee cov ntawv lossis ua kom pom lub LED.

Koj ua tiav!

Pom zoo: