RB4: RB7

G

Guest

Guest
Здравейте приятели

Искам да използвам Прекъснете-на-функция промяна на PortB.PortB pullups ще бъдат активирани, преминаването е свързан с всеки от RB4: RB7.Сега този проблем, как мога да премина diffrentiate които е натиснат, всички блестящи идеи, моля, аз съм с PICBasic Pro.

RB0 прекъсне захранването Sync за triacs
RB4 като за включване / изключване.
RB5 като скорост изберете ключ.
RB6 като интервал таймер изберете.
RB7 като "На мен само".

Как мога да направя на таймера на една и съща PIC също, че е добра идея да се използва Timer1 преливане прекъсват.Благодаря

 
Можете да държите portb в жизнеспособна, тогава, когато започне ISR, просто сравнение на старите държави-накъде на нови и вие ще знаете кои промени ПИН.Не мога да ти помогна в timer1, защото никога не използвам снимка Basic.

 
Здравейте

Има ли работа, ако използвам четири, ако отчети да се сравнят стойностите на RB4: RB7 и клон на конкретна практика.

 
Здравейте

Защо да изберете случай е по-добре от много АКО отчети?

Чудех се, ако inerrupt-на-на климата е разрешено, и въвеждане на ценностите, на RB4: RB7 са се променили, например издърпайте прозорци са разрешени, така че, когато започва да работи PIC си вече тези на PortB и превключватели, са свързани на земята, ако натиснете swith на RB4, така че преминаването свързва RB4 на земята, и премахне пръст, така че стойността се връща в единствена, защото на привличане на нови фирми, се стойността latched на RB4 става нула, вместо на един.Какво означава, микрочип, като изречете прекъсва-на-на климата може да бъде прекратена, когато PortB се чете?

Аз наистина не мога да разбера какво наистина се случва тук, в прекъсва-на-на климата, може някой моля да го обясня thotoughly.

Отколкото

 
Вие трябва да прочетете PortB преди междинния latched.В latched вход се сравнява с действителния принос и всяко несъответствие води до прекъсване на климата.

За съжаление, един BCF или BSF на всеки болт на PortB ще прочетете PortB а след това определете или изчистване на ПИН код.По принцип, ако го направя нещо с PortB прекъсват, докато се използват за промяна, да проверя състоянието на пристанището и да я сравни с регистър, съдържащ "последната стойност" и да се грижи за промените ръчно.В противен случай ще прекъсва го направя.

Във вашия пример, ще има прекъсване, когато натиснете RB4.Обикновено стъпки в прекъсне рутинни са: (1) Прочетете PortB (това ключалки на стойност), (2) отличи щифтове чрез сравняване на "oldPortB" регистър, (3) Магазин "oldPortB", (4) изчистите RBIF флаг.Така че сега RB4 е latched нула и oldPortB, 4 е равно на нула.След това ще има прекъсване, когато съобщение на ключа също.

Не използвайте PicBasic и не знам защо "случай на" е по-добре.Предполагам, компилаторът генерира по-ефективно използване на код "при".

 
Здравейте

Благодаря за хубавите отговори, относно преминаването debouncing, възможно ли е, че в миг Четох PortB в друг регистър, както ти каза, а ключът е натиснат, че си подскачащи и една нула се чете.

Мисля, че ще се откаже от идеята за използване прекъсва-на-на климата и използването командния бутон.

Имаш добър ум jonw0224, благодаря ви.

 

Welcome to EDABoard.com

Sponsor

Back
Top