خیلی ممنونم.اگر کد برای 1768 یا 2138 باشه بهتر میفهمم(با atmeg کار نکردم).روند وقفه رو متوجه شدم،ولی دقیقا نفهمیدم کدوم قسمت کد مربوط به حساس به لبه شدنه!بنظرم تو این کده کلید اصلا حساس به لبه نبود!
این کد من تو پروتئوس به درستی اجرا نمیشه.کسی میتونه راهنماییم کنه؟
میخوام با فشار دادن کلید،برنامه وارد وقفه بشه و ی ال ای دی رو روشن کنه.
بنظرتون مشکل از کدمه؟
[code=c]#include <lpc213x.h>
__irq void eint0(void)
{int j;
VICIRQStatus;
IOSET0=1<<16;
EXTINT=0x00000001;
VICVectAddr = 0;
}
int main()
{long int i=0;
PINSEL0|=3<<2;
PINSEL1=0;
IODIR0=1<<16;
IODIR0=1<<17;
VICIntSelect=0;
//VICIntEnClr=0xFFFFFFFFF;
for(i=0;i<10000;i++);
//VICIntEnClr=0;
//IO0DIR=0xFFFFFFFC;
INTWAKE=0x00000001;
EXTMODE=0x00000001;// EINT0 hassas be labe//
EXTPOLAR=0x00000001;// EINT0 hasas be labeye balaravande //
VICVectCntl0 = 0x20 | 14;//VICVectCntl0 ra fa'al karde va tayin mikonad ke marbut be EINT0 mibashad//
VICVectAddr0 = (unsigned int)eint0;//routini ke dar hengam vaghfe anjam mishavad ra moshakhas mikonad("eint0"//
VICIntEnable=0x00004000;//vaghfe EINT0 fa'al sazi nahayi mishavad va amadeye khedmat resani ast:d//
VICDefVectAddr=(unsigned int) eint0;
VICVectAddr0= (unsigned int) eint0;
while(1)
{
IOSET0=1<<17;
بسته به کار از وقفهgpio و وقفه خارجی می توان استفاده کرد
http://www.arm-education.ir/?p=133
در خود سیمولاتور کیل هم می توان جهت تست آن استفاده کرد
فیلم آموزشی میکروکنترلر LPC1768
فیلم آموزشی تکمیلی و پیشرفته میکروکنترلر LPC1768
فیلم آموزش کاربردی زبان سی در میکروکنترلر ARM
فیلم آموزش مقدماتی میکروکنترلر LPC1788 به زودی ...
دیدگاه