Микроконтроллерууд таны хобби бол мэдээллийн хуудсыг хэрхэн, яагаад унших вэ

Микроконтроллерууд таны хобби бол мэдээллийн хуудсыг хэрхэн, яагаад унших вэ

Микроэлектроник бол ид шидийн Arduino-ийн ачаар сүүлийн жилүүдэд моод болсон хобби юм. Гэхдээ энд асуудал байна: хангалттай сонирхолтой байвал та DigitalWrite()-ийг хурдан давж чадна, гэхдээ дараа нь юу хийх нь тодорхойгүй байна. Arduino хөгжүүлэгчид өөрсдийн экосистемд нэвтрэх саадыг багасгахын тулд маш их хүчин чармайлт гаргасан боловч түүний гадна талд сонирхогчдод хүрч чадахгүй хатуу ширүүн хэлхээний харанхуй ой байсаар байна.

Жишээлбэл, мэдээллийн хуудас. Тэдэнд бүх зүйл байгаа юм шиг, түүнийгээ аваад ашигла. Гэхдээ тэдний зохиогчид микроконтроллеруудыг дэлгэрүүлэх зорилт тавиагүй нь тодорхой; Заримдаа байх шиг байнаэнгийн зүйлийг тайлбарлахдаа ойлгомжгүй нэр томьёо, товчлолыг санаатайгаар урвуулан ашиглаж, мэдлэггүй хүмүүсийг аль болох төөрөгдүүлэх гэж байна. Гэхдээ бүх зүйл тийм ч муу биш, хэрэв хүсвэл хайрцаг нээгдэнэ.

Энэ нийтлэлд би хобби зорилгоор мэдээллийн хуудастай харилцаж байсан хүмүүнлэгийн ухааны мэргэжилтний туршлагыг хуваалцах болно. Текст нь Arduino өмднөөс өссөн сонирхогчдод зориулагдсан бөгөөд микроконтроллеруудын ажиллах зарчмуудын талаар тодорхой ойлголттой болно.

Би уламжлалт зүйлээс эхэлье

Arduino дээр LED анивчих

Тэгээд тэр даруй код:

void setup() {
DDRB |= (1<<5);
}

void loop() {
PINB = (1<<5);
for (volatile uint32_t k=0; k<100000; k++);
}

"Энэ юу вэ? – Нарийвчилсан уншигч асуух болно. – Та яагаад PINB оролтын бүртгэл рүү юм бичиж байгаа юм бэ? Энэ нь зөвхөн уншихад зориулагдсан!" Үнэхээр, Arduino баримт бичиг, Интернет дэх ихэнх боловсролын нийтлэлүүдийн нэгэн адил энэ бүртгэлийг зөвхөн унших боломжтой гэж заасан байдаг. Дахин унших хүртлээ би өөрөө тэгж бодож байсан мэдээллийн хуудас Atmega328p руу, энэ нийтлэлийг бэлтгэж байна. Мөн тэнд:

Микроконтроллерууд таны хобби бол мэдээллийн хуудсыг хэрхэн, яагаад унших вэ

Энэ бол харьцангуй шинэ функц бөгөөд энэ нь Atmega8 дээр байгаагүй, хүн бүр үүнийг мэддэггүй эсвэл хоцрогдсон нийцтэй байдлын улмаас дурдагддаггүй. Гэхдээ энэ нь чипийн бүх боломжуудыг, тэр дундаа бага зэрэг мэддэгийг ашиглахын тулд мэдээллийн хуудсыг унших нь зүйтэй гэсэн санааг харуулахад маш тохиромжтой. Мөн энэ нь цорын ганц шалтгаан биш юм.

Яагаад мэдээллийн хуудсыг өөр уншдаг вэ?

Ихэвчлэн Arduino инженерүүд LED болон AnalogWrites-тэй хангалттай тоглож байгаад бүх төрлийн модуль, чипүүдийг самбарт холбож эхэлдэг бөгөөд үүнд зориулж аль хэдийн бичигдсэн номын сан байдаг. Эрт орой хэзээ нэгэн цагт ажиллахгүй номын сан гарч ирнэ. Дараа нь сонирхогч үүнийг засахаар сонгож эхэлдэг бөгөөд дараа нь ...

Тэнд огт ойлгомжгүй зүйл тохиолдох тул та Google-д очиж, олон тооны заавар уншиж, хэн нэгний тохирох кодын хэсгийг татаж аваад эцэст нь зорилгодоо хүрэх хэрэгтэй. Энэ нь амжилтанд хүрэх хүчтэй мэдрэмжийг өгдөг боловч бодит байдал дээр энэ үйл явц нь мотоциклийн урвуу инженерчлэлээр дугуйг дахин зохион бүтээхтэй адил юм. Түүгээр ч барахгүй энэ унадаг дугуй хэрхэн ажилладаг тухай ойлголт нэмэгддэггүй. Би үүнийг маш удаан хугацаанд өөрөө хийсэн учраас би мэднэ.

Хэрэв би энэ сэтгэл хөдөлгөм үйл ажиллагааны оронд Atmega328 баримт бичгийг судлахад хэдэн өдөр зарцуулсан бол асар их цаг хэмнэх байсан. Эцсийн эцэст энэ бол нэлээд энгийн микроконтроллер юм.

Тиймээс микроконтроллер хэрхэн ажилладаг, юу хийж чадах талаар төсөөлөхийн тулд ядаж мэдээллийн хуудсыг унших хэрэгтэй. Мөн цааш нь:

  • бусад хүмүүсийн номын санг шалгах, оновчтой болгох. Тэдгээрийг ихэвчлэн дугуйг дахин зохион бүтээсэн ижил сонирхогчид бичдэг; эсвэл эсрэгээрээ зохиогчид нь зориудаар хэт тэнэг болгодог. Энэ нь гурав дахин том, удаан байг, гэхдээ энэ нь гарцаагүй ажиллах болно;

  • номын санд хэн ч бичээгүй төсөлд чипс ашиглах чадвартай байх;

  • нэг MK шугамаас нөгөө рүү шилжихэд хялбар болгох;

  • эцэст нь Arduino-д тохирохгүй хуучин кодоо оновчтой болгох;

  • ямар ч чипийг номын сангийн бүтцийг судлахаас төвөгшөөлгүйгээр регистрээр нь шууд удирдаж сурах.

HAL, LL гэж байхад яагаад регистрүүд рүү шууд бичих ёстой юм бэ?

Тайлбар толь бичиг
HAL, Өндөр хийсвэр давхарга – өндөр түвшний хийсвэрлэл бүхий микроконтроллерыг удирдах номын сан. Хэрэв та SPI1 интерфэйсийг ашиглах шаардлагатай бол аль регистр юуг хариуцах талаар бодохгүйгээр зүгээр л SPI1-г тохируулж идэвхжүүлнэ.
LL, доод түвшний API – макро эсвэл бүртгэлийн хаяг бүхий бүтэц агуулсан номын сан, тэдгээрт нэрээр нь хандах боломжийг олгодог. Atmega дээрх DDRx, PORTx, PINx нь LL юм.

"HAL, LL эсвэл бүртгэлүүд" гэсэн сэдвээр маргаанууд Хабре дээрх сэтгэгдэлд байнга гардаг. Астрал мэдлэгт нэвтрэх эрхээ зарлахгүйгээр би зүгээр л сонирхогчийн туршлага, бодлоо хуваалцах болно.

Atmega-ийн талаар бага эсвэл бага хэмжээгээр олж мэдээд, STM32-ийн гайхамшигт тухай нийтлэлүүдийг уншаад би Discovery, Blue Pills гэсэн хэдэн арван самбар, тэр байтугай гар хийцийн бүтээгдэхүүндээ зориулж чипс худалдаж авсан. Тэд бүгд хоёр жилийн турш хайрцганд тоос цуглуулсан. Заримдаа би өөртөө: "Болоо биз, энэ амралтын өдрөөс эхлэн би STM-г эзэмшиж байна" гэж CubeMX-г эхлүүлж, SPI-д зориулсан тохиргоог үүсгэж, үүссэн текстийн ханыг харж, STM-ийн зохиогчийн эрхийг өгөөмрөөр амталсан бөгөөд энэ нь ч бас тийм юм байна гэж шийдсэн. их.

Микроконтроллерууд таны хобби бол мэдээллийн хуудсыг хэрхэн, яагаад унших вэ

Мэдээжийн хэрэг, та CubeMX юу бичсэнийг эндээс олж мэдэх боломжтой. Гэхдээ үүнтэй зэрэгцэн бүх үг хэллэгийг санаж, дараа нь гараар бичих нь бодитой бус гэдэг нь тодорхой юм. Үүнийг дибаг хийхдээ, хэрэв би санамсаргүйгээр Cube доторх хайрцгийг шалгахаа мартсан бол энэ нь зүгээр юм.

Хоёр жил өнгөрсөн ч би уруулаа долоосоор л байна ST MCU хайгч бүх төрлийн амттай, гэхдээ миний ойлголтоос гадуур чипс, санамсаргүй тааралдсан гайхалтай нийтлэл, гэхдээ STM8-ийн тухай. БА гэнэт л Энэ бүх хугацаанд би онгорхой хаалгыг тогшиж байснаа ойлгосон: STM-ийн бүртгэлүүд нь бусад MK-ийн бүртгэлтэй адил зохион байгуулагдсан бөгөөд Cube нь тэдэнтэй ажиллах шаардлагагүй юм. Бүр боломжтой байсан уу?..

HAL, ялангуяа STM32CubeMX нь STM32 чиптэй нягт хамтран ажилладаг мэргэжлийн инженерүүдэд зориулсан хэрэгсэл юм. Гол онцлог нь хийсвэрлэлийн өндөр түвшин, STM32 шугамд үлдэхийн зэрэгцээ нэг MCU-аас нөгөө рүү, бүр нэг цөмөөс нөгөө рүү хурдан шилжих чадвар юм. Хоббичид ийм асуудалтай ховор тулгардаг - бидний микроконтроллеруудын сонголт нь дүрмээр бол AliExpress-ийн төрлөөр хязгаарлагддаг бөгөөд бид ихэвчлэн эрс өөр чипүүдийн хооронд шилждэг - бид Atmega-аас STM, STM-ээс ESP руу шилждэг, эсвэл манай хятад найз нөхөд ямар ч шинэ зүйл рүү шилждэг. бидэн рүү шид. HAL энд тус болохгүй бөгөөд үүнийг судлах нь маш их цаг хугацаа алдах болно.

LL хэвээр байна - гэхдээ үүнээс бүртгэл хүртэл хагас алхам байна. Би хувьдаа регистрийн хаягтай макро бичих нь ашигтай гэж боддог: Би мэдээллийн хуудсыг илүү анхааралтай судалж, ирээдүйд юу хэрэгтэй болох, юу нь надад хэрэггүй болох талаар боддог, би програмуудаа илүү сайн зохион байгуулдаг, ерөнхийдөө үүнийг даван туулах нь цээжлэхэд тусалдаг. .

Нэмж дурдахад алдартай STM32F103-тай нэг нюанс байдаг - үүнд тохирохгүй хоёр LL хувилбар байдаг бөгөөд нэг нь STM-ийн албан тушаалтан, хоёр дахь нь Leaf Labs-ийн STM32duino төсөлд ашиглагддаг. Хэрэв та нээлттэй эхийн номын сан бичвэл (мөн надад яг байсан ийм даалгавар), та хоёр хувилбар хийх эсвэл бүртгэлд шууд хандах ёстой.

Эцэст нь хэлэхэд, LL-ийг арилгах нь миний бодлоор шилжилт хөдөлгөөнийг хялбаршуулдаг, ялангуяа хэрэв та төслийн эхнээс үүнийг төлөвлөж байгаа бол. Хэтрүүлсэн жишээ: Atmel Studio дээр Arduino blink гэж LLгүйгээр бичье:

#include <stdint.h>

#define _REG(addr) (*(volatile uint8_t*)(addr))

#define DDR_B 0x24
#define OUT_B 0x25

int main(void)
{
    volatile uint32_t k;

    _REG(DDR_B) |= (1<<5);

    while(1)
    {
        _REG(OUT_B) |= (1<<5);
        for (k=0; k<50000; k++);
        _REG(OUT_B) &= ~(1<<5);
        for (k=0; k<50000; k++);
    } 
}

Энэ кодыг STM8 (ST Visual Desktop) бүхий хятад самбар дээрх LED-г анивчуулахын тулд доторх хоёр хаягийг өөрчлөхөд хангалттай.

#define DDR_B 0x5007
#define OUT_B 0x5005

Тийм ээ, би LED-ийг тодорхой самбар дээр холбох функцийг ашигладаг, энэ нь маш удаан анивчих болно, гэхдээ энэ нь тохиолдох болно!

Ямар төрлийн мэдээллийн хуудас байдаг вэ?

Орос, англи хэл дээрх нийтлэл, форум дээр "мэдээллийн хуудас" гэдэг нь чипийн техникийн баримт бичгийг илэрхийлдэг бөгөөд би энэ текстэд ижил зүйлийг хийдэг. Албан ёсоор эдгээр нь ийм баримт бичгийн зөвхөн нэг төрөл юм:

Datasheet – Гүйцэтгэлийн шинж чанар, тактикийн болон техникийн шинж чанарууд. Аливаа электрон бүрэлдэхүүн хэсэгт заавал байх ёстой. Суурь мэдээлэл нь гартаа байх нь ашигтай боловч эргэцүүлэн уншихад тийм ч их зүйл байхгүй. Гэсэн хэдий ч шаардлагагүй баримт бичгүүдийг гаргахгүйн тулд илүү энгийн чипүүд нь ихэвчлэн мэдээллийн хүснэгтээр хязгаарлагддаг; энэ тохиолдолд Лавлах гарын авлага энд багтсан болно.

Лавлах гарын авлага – заавар нь өөрөө, 1000+ хуудастай эрүүл ном. Чипэнд гацсан бүх зүйлийн ажлыг нарийвчлан тайлбарласан болно. Микроконтроллерыг эзэмших үндсэн баримт бичиг. Дургүй datasheet, зааврууд нь өргөн хүрээний MK-д зориулагдсан бөгөөд тэдгээр нь таны загварт байхгүй нэмэлт төхөөрөмжүүдийн талаар маш их мэдээллийг агуулдаг.

Програмчлалын гарын авлага буюу Зааварчилгааны багц гарын авлага – микроконтроллерийн өвөрмөц командын заавар. Ассемблей хэлээр программчлагчдад зориулагдсан. Хөрвүүлэгч зохиогчид кодыг оновчтой болгохын тулд үүнийг идэвхтэй ашигладаг тул ерөнхий тохиолдолд бидэнд хэрэггүй болно. Гэхдээ эндээс харах нь ерөнхий ойлголт, тасалдлаас гарах гэх мэт тодорхой командуудад, түүнчлэн дибаглагчийг идэвхтэй ашиглахад хэрэгтэй.

Хэрэглээний тэмдэглэл - тодорхой асуудлыг шийдвэрлэхэд хэрэгтэй зөвлөмжүүд, ихэвчлэн код жишээнүүдтэй.

Алдааны хуудас – стандарт бус чипийн үйл ажиллагааны тохиолдлуудын тайлбар, хэрэв байгаа бол шийдвэрлэх сонголтууд.

Мэдээллийн хүснэгтэд юу байна

Шууд руу Datasheet бидэнд дараах хэсгүүд хэрэгтэй байж магадгүй.

Төхөөрөмжийн хураангуй - мэдээллийн хуудасны эхний хуудсанд төхөөрөмжийг товч тайлбарласан болно. Та хаа нэгтээ чип олсон (дэлгүүрт харсан, гагнаж, дурдагдсан) болон энэ нь юу болохыг ойлгохыг хүссэн тохиолдолд маш хэрэгтэй.

Ерөнхий тайлбар – шугамнаас чипүүдийн чадавхийн талаар илүү нарийвчилсан тайлбар.

Pinouts – боломжит бүх чип багцын диаграммууд (аль зүү аль хөл дээр байна).

Зүү Тодорхойлолт – зүү тус бүрийн зорилго, чадварын тодорхойлолт.

Санах ойн зураг - Бид санах ойд хаягийн зураг авах шаардлагагүй, гэхдээ заримдаа энэ нь бүртгэлийн блок хаягуудын хүснэгтийг агуулдаг.

Газрын зураг бүртгүүлэх – бүртгэлийн блокуудын хаягийн хүснэгт нь дүрмээр бол мэдээллийн хуудсанд байрладаг Ref гарын авлага - зөвхөн ээлж (хаягийн зөрүү).

Цахилгаан шинж чанар - энэ хэсэгт бид хамгийн түрүүнд сонирхож байна үнэмлэхүй дээд үнэлгээ, чип тутамд хамгийн их ачааллыг жагсаасан. Үл эвдэх Atmega328p-ээс ялгаатай нь ихэнх MK нь ноцтой ачааллыг тээглүүртэй холбохыг зөвшөөрдөггүй бөгөөд энэ нь Arduinists-ийн хувьд таагүй гэнэтийн бэлэг болдог.

Багцын мэдээлэл – самбараа зохион бүтээхэд хэрэг болохуйц тохиолдлын зураг.

Лавлах гарын авлага Бүтцийн хувьд гарчигт заасан тодорхой захын төхөөрөмжүүдэд зориулагдсан хэсгүүдээс бүрдэнэ. Бүлэг бүрийг гурван хэсэгт хувааж болно:

Тойм, Оршил, онцлог - захын чадавхийн тойм;

Функциональ тодорхойлолт, Хэрэглээний гарын авлага эсвэл зүгээр л хэсгийн үндсэн блок - захын төхөөрөмжийн зарчмууд, түүнийг хэрхэн ашиглах талаархи дэлгэрэнгүй текстийн тайлбар;

Бүртгэгчид – хяналтын бүртгэлүүдийн тодорхойлолт. GPIO эсвэл SPI гэх мэт энгийн тохиолдлуудад энэ нь дагалдах төхөөрөмжийг ашиглаж эхлэхэд хангалттай байж болох ч ихэнхдээ та өмнөх хэсгүүдийг унших хэрэгтэй болдог.

Мэдээллийн хуудсыг хэрхэн унших вэ

Өгөгдлийн хуудас нь дадал зуршлаасаа болж таныг эзэлхүүнтэй, үл ойлгогдох үгсээр айлгадаг. Үнэн хэрэгтээ, хэрэв та хэд хэдэн лайф хакеруудыг мэддэг бол бүх зүйл тийм ч аймшигтай биш юм.

Тогто сайн PDF уншигч. Мэдээллийн хуудас нь цаасан зааврын гайхамшигт уламжлалаар бичигдсэн бөгөөд тэдгээрийг хэвлэх, хуванцар хавчуурга оруулах, оёход тохиромжтой. Тэдгээрийн доторх гипертекст ул мөрийн хэмжээгээр ажиглагддаг. Аз болоход, наад зах нь баримт бичгийн бүтэц нь хавчуургатай байдаг тул хялбар навигаци бүхий тохиромжтой уншигч маш их хэрэгтэй байдаг.

Мэдээллийн хуудас нь Stroustrup-ийн сурах бичиг биш бөгөөд үүнд агуулагддаг бүгдийг унших шаардлагагүй. Хэрэв та өмнөх зөвлөгөөг ашигласан бол хавчуургын талбараас хүссэн хэсгийг олоорой.

Мэдээллийн хуудас, ялангуяа Лавлах гарын авлага, тодорхой чип биш харин чадавхийг тодорхойлж болно бүх шугам. Энэ нь мэдээллийн тал, бүр гуравны хоёр нь таны чиптэй холбоогүй гэсэн үг юм. TIM7 бүртгэлийг судлахын өмнө шалгана уу Ерөнхий тайлбар, чамд байгаа юу?

Мэд англи хэл дээр хангалттай үндсэн түвшин. Мэдээллийн хуудас нь энгийн төрөлх хэлээр ярьдаг хүнд танил бус нэр томъёоны тал, энгийн холболтын бүтцийн хагасаас бүрддэг. Мөн Хятад англи хэл дээр маш сайн хятад мэдээллийн хуудас байдаг бөгөөд тэдгээрийн тал нь бас нэр томъёо, хоёр дахь тал нь санамсаргүй үгийн багц юм.

Хэрэв уулзвал танихгүй үг, Англи-Орос толь бичиг ашиглан орчуулах гэж бүү оролдоорой. Хэрэв та эргэлзэж байвал гистерез, тэгвэл "гистерезис" гэсэн орчуулга таныг дулаацуулахгүй. Google, Stack Overflow, Wikipedia, форум, шаардлагатай концепцийг ашиглах жишээн дээр энгийн үгээр тайлбарлав.

Уншсан зүйлээ ойлгох хамгийн сайн арга үйлдлийг шалгах. Тиймээс, хэрэв та ямар нэг зүйлийг буруу ойлгож, шидэт утаа харсан бол сайн мэддэг алдаа засах самбараа гартаа байлгаарай.

Мэдээллийн хуудсаа гартаа байлгах нь сайн зуршил юм хэн нэгний хичээл унших эсвэл өөр хэн нэгний номын санг судлах. Үүнээс та асуудлынхаа илүү оновчтой шийдлийг олох боломжтой. Мөн эсрэгээр - хэрэв та мэдээллийн хуудаснаас бүртгэл хэрхэн ажилладагийг ойлгохгүй байгаа бол google-ээс хайж олоорой: магадгүй хэн нэгэн бүх зүйлийг энгийн үгээр тайлбарласан эсвэл GitHub дээр тодорхой код үлдээсэн байх магадлалтай.

Тайлбар толь бичиг

Мэдээллийн хүснэгтэд хурдан дасахад тань туслах зарим хэрэгтэй үг, тэмдэгтүүд. Сүүлийн хоёр өдөр миний санаж байгаа зүйлд нэмэлт, засвар оруулахыг урьж байна.

Цахилгаан
Нууц, Үнэн - "нэмэх", хоол хүнс
Vss, Vee - "хасах", дэлхий
одоогийн - Одоогийн
хүчдэлийн - хүчдэл
гүйдлийг шингээх – гадаад ачааллыг “газар” болгон ажиллах
гүйдлийн эх үүсвэр рүү - эрчим хүчний гадаад ачаалал
өндөр угаалтуур/эх зүү – ачаалал ихсэх “хүлцэх” зүү

IO
H, Өндөр – Vcc зүү дээр
L, Бага – Vss зүү дээр
Өндөр эсэргүүцэл, Сайн байна уу, хөвөгч - зүү дээр юу ч байхгүй, "өндөр эсэргүүцэл", энэ нь гадаад ертөнцөд бараг үл үзэгдэх юм.
сул татах, сул доош татах – 50 кОм-тай тэнцэх (өгөгдлийн хуудсыг харна уу). Жишээлбэл, оролтын зүүг агаарт унжуулж, хуурамч эерэг үр дүнд хүргэхээс урьдчилан сэргийлэх зорилгоор ашигладаг. Сул - учир нь түүнийг "тасалдуулахад" амархан байдаг.
түлхэх татах – хооронд шилжих зүү гаралтын горим Өндөр и Бага – Arduino-аас тогтмол гаралт.
нээлттэй ус зайлуулах хоолой – зүү аль аль нь байж болох гаралтын горимын тэмдэглэгээ Бага, эсвэл Өндөр эсэргүүцэл/Хөвөгч. Түүнээс гадна бараг үргэлж энэ нь "жинхэнэ" нээлттэй ус зайлуулах суваг биш, хамгаалалтын диод, резистор гэх мэт зүйлс байдаг. Энэ нь зүгээр л газар/байхгүй горимын тэмдэглэгээ юм.
жинхэнэ задгай ус зайлуулах хоолой - гэхдээ энэ нь жинхэнэ задгай ус зайлуулах суваг юм: зүү нь нээлттэй байвал шууд газарт хүргэдэг, эсвэл хаалттай бол тодорхойгүй хэвээр үлддэг. Энэ нь шаардлагатай бол Vcc-ээс их хүчдэлийг түүгээр дамжуулж болно гэсэн үг юм, гэхдээ дээд тал нь өгөгдлийн хуудасны хэсэгт заасан хэвээр байна. Үнэмлэхүй хамгийн их үнэлгээ/хүчдэл.

Интерфэйсүүд
цувралаар - цувралаар холбогдсон
гинжлэх – гаралтын тоог нэмэгдүүлэн цуваа холболтыг ашиглан чипүүдийг хэлхээнд угсарна.
ээлж – шилжилт гэдэг нь ихэвчлэн бага зэрэг шилжилтийг илэрхийлдэг. тус тус, шилжих и шилжих – мэдээллийг бага багаар хүлээн авах, дамжуулах.
түгжээ – битүүд түүгээр шилжиж байх үед буферийг хамардаг түгжээ. Дамжуулж дуусахад хавхлага нээгдэж, битүүд ажиллаж эхэлнэ.
цаг оруулах – битээр дамжуулалт хийж, бүх битүүдийг зөв газарт шилжүүлнэ.
давхар буфер, сүүдрийн бүртгэл, урьдчилан ачаалах бүртгэл – регистр нь шинэ өгөгдлийг хүлээн авах боломжтой байх ёстой, гэхдээ тодорхой цэг хүртэл хадгалсан түүхийн тэмдэглэгээ. Жишээлбэл, PWM зөв ажиллахын тулд түүний параметрүүд (ажлын мөчлөг, давтамж) одоогийн мөчлөг дуусах хүртэл өөрчлөгдөх ёсгүй, гэхдээ шинэ параметрүүдийг аль хэдийн шилжүүлж болно. Үүний дагуу одоогийнх нь хэвээр хадгалагдаж байна сүүдрийн бүртгэл, мөн шинэ нь орно урьдчилан ачаалах бүртгэл, харгалзах чип бүртгэлд бичигдэж байна.

Бүх төрлийн зүйл
урьдчилан хэмжигч – давтамжийн урьдчилсан тохируулагч
бага зэрэг тохируулах – битийг 1 болгож тохируулна
бага зэрэг цэвэрлэх/дахин тохируулах – битийг 0 болгож дахин тохируулах (Дахин тохируулах - STM мэдээллийн хуудасны онцлог)

Дараа нь юу юм

Ерөнхийдөө энэ өгүүлэлд зориулж өгөгдлийн хүснэгтийг ашиглан гэрлийн чийдэн, SPI, таймер, PWM болон тасалдал бүхий STM32 ба STM8 дээрх гурван төслийн үзүүлбэр бүхий практик хэсгийг энд төлөвлөсөн болно.

Микроконтроллерууд таны хобби бол мэдээллийн хуудсыг хэрхэн, яагаад унших вэ

Гэхдээ маш их текст байгаа тул төслүүдийг хоёрдугаар хэсэг рүү илгээдэг.

Мэдээллийн хуудсыг унших ур чадвар нь хоббитой болоход тань туслах болно, гэхдээ форум, чат дахь хоббитой хүмүүстэй шууд харилцаа холбоог орлох нь юу л бол. Үүнд хүрэхийн тулд та хамгийн түрүүнд англи хэлээ сайжруулах хэрэгтэй. Тиймээс уншиж дууссан хүмүүс тусгай шагнал авах болно: Skyeng-д хоёр үнэгүй хичээл кодыг ашиглан эхний төлбөртэй. HABR2.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх