Gnóthachain:
- Cumas riachtanais chlár, idirbhriseadh agus uainiúcháin a shainiú don mhicreathrialóir le leid soiléir
- Cumas an cód C/Arduino arna tháirgeadh ag AI a sheiceáil i dtéarmaí socruithe cláir, ró-shreabhadh maoláin agus srianta fíor-ama
- Cumas an nós a bhaineann leis an gcód ginte a fhíorú a chur i bhfeidhm trína thomhas ar chrua-earraí (oscilloscope, port srathach)
Is éard atá i gceist le forbairt córais leabaithe ná áit a dtrasnaíonn bogearraí agus crua-earraí: giotán cláir a shocrú go mícheart, cur isteach ró-fhada a choinneáil, nó maolán a chur thar maoil beidh teipeanna aisteacha, deacair a atáirgeadh sa réimse, cé go bhfuil an cód "ag tiomsú" agus ag rith. Is fíor-luasaire é AI sa réimse seo; Féadann sé cnámharlaigh tosaigh, feidhmeanna astarraingthe crua-earraí, meaisíní stáit agus gnáthaimh chumarsáide a tháirgeadh. Ach ní fheiceann AI bileog sonraí do chárta, ní fios do mhinicíocht clog, agus ní bhraitheann sé do shrianta fíor-ama. San aonad seo, clúdóimid conas obair mhicririaltóra a shainiú go soiléir do AI, conas an cód C/Arduino ginte a sheiceáil, agus cén fáth ar cheart duit gach rud sna crua-earraí a thomhas.
An Riachtanas a Shainmhíniú go Soiléir: Clár, Gearradh, Uainiú
Ní oibreoidh sé ag rá le AI "LED a lasadh"; Cén cárta, cén bioráin, cén minicíocht clog, cén t-am? Agus tasc leabaithe á shannadh do AI, bain úsáid as an gcreat seo: crua-earraí (teaghlach MCU, clog, bioráin), feidhm (cad a tharlóidh), srian (uainiú, cumhacht, cuimhne), agus comhéadan (clár, HAL, leabharlann Arduino).
Lag Pras / Pras Láidir
WEAK: "Táirg PWM le STM32." (Toradh: cén t-amadóir, cén minicíocht, a bioráin doiléir; ginearálta, is dócha mícheart chlár ainmnithe cód.) STRONG: "Táirgeadh 20 kHz, 0-100% PWM dleacht inchoigeartaithe ar TIM3 CH1 (PA6) do STM32F103 (72 MHz clog córas). Scríobh ar leibhéal an chláir (ní HAL). - Prescaler agus kHz a thaispeáint ARR luachanna - Prescaler agus ARR ARR). an dualgas le paraiméadar feidhme idir 0-100. - Déan trácht ar gach giotán cláir a úsáideann tú Tabhair faoi deara go n-athróidh na luachanna má tá do thoimhde clog mícheart."
Is é an difríocht ná go ndéanann an leid cumhachtach an tsamhail an ríomh a thaispeáint agus an toimhde clog a nochtadh. Mar sin is féidir leat na luachanna prescaler/ARR a sheiceáil go neamhspleách:
Le haghaidh 20 kHz PWM (clog 72 MHz): Timer_clock = 72 MHz Más mian linn prescaler = 72-1 → cuntar clog = 1 MHzARR = (1 MHz / 20 kHz) - 1 = 50 - 1 = 49Fíorú: 1e6 / (49+1) = 20 000 Hz
Cód AI a Iniúchadh: Cad atá le Lorg?
Díreach mar gheall ar thiomsaíonn an cód a ghintear ní chiallaíonn sé ag obair i gceart. Lean an seicliosta seo:
limistéar rialaithe
Cad a lorg
Socruithe clárúcháin/giotán
Luí go díreach leis an mbileog sonraí, masc ceart giotán
Idirbhriseadh (ISR)
An bhfuil sé gearr? Gan aon mhoill bhac? An úsáidtear luaineach?
maolán/eagar
An bhfuil rialú teorann ann? Riosca thar maoil?
uainiú
Le moill nó le lasc ama? An sásaítear an teorainn ama iarbhír?
Cineál agus leithead
Overflow 8/16/32-giotán, mearbhall sínithe/gan síniú
cumhacht/faire
Faire beathaithe lúb gan teorainn?
Is iad gnáthaimh seirbhíse idirbhriste (ISR) an fhoinse earráidí is coitianta. Uaireanta cuireann AI moill() nó lúb fhada taobh istigh den ISR. Mar thoradh air seo cailltear idirbhriseadh eile agus athshocraítear faire. Riail: Ba chóir go mbeadh ISR chomh gearr agus is féidir; Ba cheart gurb é an príomhphost ná bratach a shocrú agus é a aistriú go dtí an príomh-lúb.
// WEAK (táirgeann AI é seo uaireanta): Feidhm bhlocála i bhfolús ISR TIM3_IRQHandler(neamhní) { if (TIM3-> SR & TIM_SR_UIF) { TIM3-> SR &= ~TIM_SR_UIF; read_braiteoir(); // seans go dtógfaidh sé tamall fada - BAD CASE_Delay(10); // moill ar ISR - FÍOR-DHOL }}// STRONG: ISR gearr; bogtar an post go dtí an príomh-lúb luaineach uint8_t tick_flag = 0; // CONDITION so-ghalaithe ar neamhní TIM3_IRQHandler(neamhní) { if (TIM3-> SR & TIM_SR_UIF) { TIM3-> SR &= ~TIM_SR_UIF; tic_flag = 1; // níl le déanamh ach bratach }}// a shocrú sa phríomhlúb: má (tic_flag) { tic_flag = 0; read_braiteoir(); }
Aire: Caithfidh aon athróg a roinntear idir an t-idirbhriseadh agus an príomh-lúb a bheith luaineach. Seachas sin, féadfaidh an tiomsaitheoir an athróg a thaisceadh sa chlár agus an nuashonrú a chailleann. Is minic a dhéanann AI dearmad ar an eochairfhocal seo; Cuardaigh go sonrach é agus an cód á léamh.
Overflow Maoláin agus Earráidí Cineál
Is féidir le AI sonraí a chóipeáil ón gcalafort srathach isteach i sraith de mhéid seasta gan seiceáil teorainneacha. I gcóras leabaithe, ciallaíonn sé seo cuimhne tadhlach a bhrú agus tuairteanna gan mhíniú. Cinntigh go bhfuil an teorainn seiceáilte ag gach strcpy, innéacs eagar agus maolán DMA. Mar an gcéanna, athshocraíonn cuntar 8-giotán tar éis 255; Is féidir le AI neamhaird a dhéanamh air seo agus brath ar chuntas thar maoil.
Fíorú i gCrua-earraí: Tomhaistear "Oibriú", Ní Glactar leis
I gcóras leabaithe, is é an méadar, ní an tiomsaitheoir an fhianaise is iontaofa. Fíoraigh an cód ginte ar na trí bhealach seo:
- Anailíseoir oscillascóp/loighic: Tomhais minicíocht PWM, uainiú comhartha agus cruth tonn cumarsáide. Má theastaigh 20 kHz uait, féach 20 kHz ar an scáileán.
- Loga port srathach (UART): Priontáil amach luachanna athraitheacha, luaigh aistrithe, agus áiritheoirí earráide agus cuir i gcomparáid leis an iompar a bhfuiltear ag súil leis.
- Tástáil faoi cheangal agus struis: Déan tástáil an bhfuil an córas ag seasamh faoin ualach is airde, na sonraí is tapúla agus an t-am is measa.
Mura n-aontaíonn an luach tomhaiste leis an ríomh, tá an toimhde clog, luach prescaler nó socrú cláir mícheart; ruaig.
Cás Mion
Tá an AI clóite ag foireann mac léinn cód tomhais achair le braiteoir ultrasonaic HC-SR04. Tiomsaíonn an cód ach tugann an fad luachanna ridiculous i gcónaí. Nuair a cheanglaíonn siad leis an ascalascóp é, feiceann siad go ríomhann cos an mhacalla a uainiú ina milleasoicindí in ionad micreasoicindí; Bhain AI úsáid as millis() in ionad miocrón(). Chuir an earráid aon-focal seo mearbhall ar an tomhas iomlán faoi fhachtóir 1000. Nuair a phriontálann siad an t-am macalla amh isteach sa logáil sraitheach agus nuair a chuireann siad i gcomparáid é le rialóir fíor, aimsíonn siad an earráid agus socraíonn siad é. Ceacht: ní cód ceart é an cód tiomsaithe; Nochtann tomhas crua-earraí an earráid láithreach.
Botúin Choitianta
- Glacadh le hainmneacha cláir agus maisc ghiotán gan iad a chur i gcomparáid leis an mbileog sonraí.
- Moill blocála nó próiseáil fhada a cheadú laistigh den ISR.
- Dearmad a dhéanamh ar athróga comhroinnte.
- seiceáil teorainneacha eagair agus maoláin sheachbhóthar; gan féachaint ar an thar maoil.
- Ag brath ar thoimhdí minicíochta agus uainiúcháin gan iad a fhíorú.
- Ag cur san áireamh go bhfuil an cód "ag obair" gan é a thomhas le hoscillascóp/logán sraitheach.
Go hachomair
- An tasc leabaithe a shainiú go soiléir i dtéarmaí crua-earraí, feidhm, srianta agus comhéadan.
- Bíodh an AI luachanna uainiúcháin ar nós prescaler/ARR a ríomh agus iad a fhíorú go neamhspleách.
- Coinnigh ISRanna gearr, bain úsáid as luaineach ar athróga comhroinnte.
- Cuardaigh go sonrach earráidí clár, teorainn maolánach agus leithead cineáil.
- Tá "Oibríonn sé" cruthaithe le hoscilloscope, anailíseoir loighic, agus logáil sraitheach, ní leis an tiomsaitheoir.
- Mura n-aontaíonn an luach tomhaiste leis an ríomh, lean na boinn tuisceana.
Tasc feidhmchláir
Le microcontroller atá agat (Arduino, STM32, ESP32), iarr ar an AI le haghaidh PWM nó tasc tréimhsiúil ag minicíocht áirithe. Roimh an cód a luchtú: (1) fíoraigh luachanna minicíochta/uainiúcháin an chuntais go neamhspleách sa líne tráchtaireachta, (2) seiceáil an bhfuil luaineacht agus blocáil san ISR agus in athróga comhroinnte. Tar éis uaslódáil, tomhas an mhinicíocht iarbhír le oscilloscope nó anailíseoir loighic agus é a chur i gcomparáid leis an sprioc. Má tá diall ann, faigh an fhoinse agus ceartaigh é, agus tabhair faoi deara cad a measadh a bheith mícheart.