- Постављање и захтеви хардвера
- Н76Е003 Круг интерфејса за ЛЕД и тастере
- Н76Е003 Пин-Оут дијаграм
- Једноставан програм за управљање ГПИО за Н76Е003
- Програмирање Н76Е003 и верификација излаза
У нашем претходном упутству користили смо основни ЛЕД програм за треперење као почетак рада са водичем Н76Е003, већ смо научили како да конфигуришемо Кеил ИДЕ и поставимо окружење за програмирање нувотон јединице микроконтролера Н76Е003. Време је да се померимо мало даље и користимо основни ГПИО интерфејс за контролу додатног хардвера. Ако сте заинтересовани, можете погледати и друге ГПИО водиче за микроконтролере који су наведени испод -
- СТМ32 Нуцлео64 са ЦубеМк и ТруеСТУДИО - ЛЕД контрола
- СТМ8С са Цосмиц Ц ГПИО контролом
- ПИЦ са МПЛАБКС ЛЕД водичем за трептање
- МСП430 са Цоде Цомпосер Студио - Једноставна ЛЕД контрола
Будући да смо у претходном упутству ЛЕД користили само да трепће користећи ИО пин као излаз. У овом упутству ћемо научити како користити други ИО пин као улаз и контролисати додатну ЛЕД диоду. Не трошећи много времена, хајде да проценимо какву врсту хардверског подешавања требамо.
Постављање и захтеви хардвера
Како прекидач треба користити као улаз, прво што требамо је тастер. Такође нам је потребна додатна ЛЕД лампица којом се управља помоћу овог дугмета. Осим ове две, потребан нам је и отпорник за ограничавање ЛЕД струје и додатни отпорник за спуштање преко тастера. Ово ће бити даље приказано у шематском одељку. Компоненте које су нам потребне -
- Тастер (било која врста тренутног прекидача - тактилни прекидач)
- Било која боја ЛЕД диоде
- Отпорник од 4,7 к за спуштање
- Отпорник 100Р
Да не помињемо, осим горе наведених компоненти, потребан нам је развојни одбор заснован на микроконтролеру Н76Е003, као и Ну-Линк програмер. Поред тога, за повезивање свих компоненти потребне су и жице за спајање и спојне жице, као што је приказано доле.
Н76Е003 Круг интерфејса за ЛЕД и тастере
Као што можемо видети на доњој шеми, тест ЛЕД који се налази унутар развојне плоче повезан је на порт 1.4, а додатни ЛЕД на порт 1.5. Отпорник Р3 служи за ограничавање ЛЕД струје.
У пин 1.6 повезан је тастер са именом СВ. Кад год притиснете дугме, пин ће постати висок. У супротном ће пасти 4.7К падајући отпорник Р1. Ако сте нови у овом концепту, можете сазнати више о пулл-уп и пулл-довн отпорницима.
Пин је такође пин повезан са програмом којем програмер приступа. Користи се за слање података о програму. Међутим, видећемо разлог изабирања тих пинова, као и поштене информације о мапирању пинова Н76Е003.
Н76Е003 Пин-Оут дијаграм
Пин дијаграм Н76Е003 се може видети у ниже имаге-
Као што видимо, сваки пин има више функција и може се користити у различите сврхе. Узмимо пример. Пин 1.7 се може користити као прекид или аналогни улаз или као операција улаза-излаза опште намене. Дакле, ако се било који пин користи као И / О пинови, тада одговарајућа функционалност неће бити доступна.
Због тога, пин 1.5 који се користи као ЛЕД излазни пин, изгубиће ПВМ и друге функције. Али то није проблем, јер за овај пројекат није потребна друга функционалност. Разлог изабирања пина 1.5 као излаза и пина 1.6 као улаза, због најближе доступности ГНД и ВДД пинова за лако повезивање.
Међутим, у овом микроконтролеру од 20 пинова, 18 пинова се могу користити као ГПИО пинови. Пин 2.0 се наменски користи за ресетовање улаза и не може се користити као излаз. Осим овог пина, сви пинови се могу конфигурисати у доле описаном режиму.
Према табели података, ПкМ1.н и ПкМ2.н су два регистра која се користе за одређивање контролног рада И / О порта. Сада је потпуно друга ствар приступ писању и читању ГПИО порта. Будући да уписивање у регистар контроле лука мења стање закључавања порта, док читање порта добија статус логичког стања. Али за читање порта мора бити постављен у режим уноса.
Једноставан програм за управљање ГПИО за Н76Е003
Комплетни програм кориштен у овом упутству налази се на дну ове странице, објашњење кода је следеће.
Постављање пина као улаза
Почнимо прво са уносом. Као што је претходно речено, да би се очитао статус порта, мора се поставити као улаз. Стога, како смо изабрали П1.6 за наш улазни прекидач, означили смо га кроз доњи ред исечка кода.
#дефине СВ П16
Овај исти пин треба поставити као улаз. Дакле, на функцији подешавања, пин се поставља као улаз помоћу доње линије.
воид сетуп (воид) {П14_Куаси_Моде; П15_Куаси_Моде; П16_Инпут_Моде; }
Овај ред П16_Инпут_Моде; дефинисан је у датотеци заглавља Фунцтион_дефине.х у „БСП укључује библиотеку“ која поставља пин бит као П1М1- = СЕТ_БИТ6; П1М2 & = ~ СЕТ_БИТ6 . СЕТ_БИТ6 је такође дефинисан у истом заглављу фајла АС-
#дефине СЕТ_БИТ6 0к40
Постављање пинова као излаза
Исто као улазни пин, излазни пин који користе уграђена тест ЛЕД и спољни ЛЕД1 такође је дефинисан у првом одељку кода са одговарајућим ПИН-овима.
#дефине Тест_ЛЕД П14 #дефине ЛЕД1 П15
Ти пинови се постављају као излаз у функцији подешавања помоћу доњих редова.
воид сетуп (воид) { П14_Куаси_Моде; // излаз П15_Куаси_Моде; // излаз П16_Инпут_Моде; }
Ови редови су такође дефинисани у датотеци заглавља Фунцтион_дефине.х где поставља пин бит као П1М1 & = ~ СЕТ_БИТ4; П1М2 & = ~ СЕТ_БИТ4 . СЕТ_БИТ6 је такође дефинисан у истом заглављу фајла АС-
#дефине СЕТ_БИТ4 0к10
Петља Бесконачно док
Хардвер, ако је повезан са снагом и беспрекорно ради и треба непрекидно да даје излаз, апликација се никада не зауставља. То чини исту ствар у бескрајна времена. Овде долази функција бесконачне вхиле петље. Апликација унутар вхиле петље ради бесконачно.
док (1) { Тест_ЛЕД = 0; св_делаи (150); Тест_ЛЕД = 1; св_делаи (150); ако је (СВ == 1) {ЛЕД1 = 0; } елсе {ЛЕД1 = 1; }}}
Горња вхиле петља трепери лед према вредности св_делаи и такође проверава статус СВ. Ако се притисне прекидач, П1.6 ће бити висок, а самим тим када се притисне, статус очитавања ће бити 1. У овој ситуацији, прекидач је притиснут, а порт П1.6 остаје висок, ЛЕД1 ће светлити.
Програмирање Н76Е003 и верификација излаза
У нашем почетку рада са упутством за Н76Е003, научили смо како већ програмирати Н76Е003, па ћемо овде поновити исте кораке да програмирамо нашу плочу. Код је успешно компајлиран и вратио је 0 упозорења и 0 грешака и бљеснуо је помоћу задате методе трептања од стране Кеила.
Као што видите на горњој слици, наша спољна ЛЕД лампица се укључује када притиснем тастер. Комплетан рад пројекта може се наћи у доњем видео линку. Надам се да сте уживали у водичу и научили нешто корисно ако имате питања, оставите их у одељку за коментаре испод. Наше форуме можете користити и за постављање других техничких питања.