Помощ необходими за външни прекъсвания на микроконтролер

S

southafrikanse

Guest
Здравейте всички, аз съм с помощта на AT89S8253 микроконтролер, за да работят като Часовник с аларма. Дотук добре съм успял да програмирате часовника. Аз съм с два външни прекъсвания на моя микроконтролер (INT0 и INT1), INT0 е контролирана от превключвател, който работи като SET_TIME (в прикачения файл с променливата "Horas"), докато INT1 е моя SET_ALARM (в прикачения файл с променлива "Alarme"). Компилиран с Кайл и когато отидох да тествате ако 2 прекъсвания са работели само INT0 работи. Можете ли да ми помогне да намерите проблема, защо INT1 не могат да работят? Попитах моите приятели какво трябва да направя, но те са имали същия проблем в техния проект. Аз съм използвате C език. Всички въпроси, моля попитайте. Имам нужда от това решение възможно най-скоро и аз може да използва само прекъсвания. Най-добри пожелания. Моят код е в прикачения файл.
 
Не можех да отворите файла. може да бъде той е увреден. се опитват да RAR отново и да качвате.
 
[Цитат = aupa] не можех да отворите файла. може да бъде той е увреден. се опитват да RAR отново и да качвате [/ цитат] Трябва да го отворите с бележник.
 
Никога не съм работил с този чип, но от бегъл поглед фиш на този микроорганизъм е IE (прекъсне позволяват регистър), която държи прекъсване позволи флаг за прекъсване различни вектори. Можете дръжка даде възможност за прекъсване от 2 определения (от изходен код): # определят D_INT IE = 0x0; # определят E_INT IE = 0x81; не можах да намеря всякакви други опити за достъп до IE се регистрирате в кода си. Оформлението на IE е: EA - ET2 ES ET1 EX1 ET0 EX0 където бит 0 е да се даде възможност на флага за INT0 и малко 2 е да се даде възможност на флага за INT1. При възлагане на 0x81 да IE само дават възможност INT0. Вие трябва да присвоите 0x85: # определят E_INT IE = 0x85; вместо # определят E_INT IE = 0x81; След това обърнете внимание на рутинна обработка за прекъсване, дали е правилно или не.
 
@ Артьом, което съм правил това, което ми каза. Но проблемите все още е там: EDIT: Няма значение, тя работи, се обадите на аларма прекъсване на грешното място. Благодаря ви много за вашата помощ.
 

Welcome to EDABoard.com

Sponsor

Back
Top