سلام.
من با MikoC کد خیلی ساده ای برای 18f452 نوشتم ولی مشکل خیلی ساده ای با Delay دارم. هر کاری میکنم دستورات Delay کار نمیکنه.
کد:
با فشار دادن کلید LED روشن میشود و با رها کردن اون LED بلافاصله خاموش میشود. Fuse بیت ها به شکل زیر هستند.
کریستال 40MHZ است.
و جالب این که مشکل اصلا از Delay نیست کد زیر رو ببینید :
-----------------------------------------------------------------------------------
با این کد وقتی کلید رو فشار میدم LED روشن میشه ولی وقتی ولش میکنم LED بلافاصله خاموش میشه. Realy Amazing.
همین مشکل با MikroBasic هم به وجود میاد. از کسانی که با کامپایلر های Mkroe و میکرو های سری 18F کار کردن کمک کنند لطفا.
من با MikoC کد خیلی ساده ای برای 18f452 نوشتم ولی مشکل خیلی ساده ای با Delay دارم. هر کاری میکنم دستورات Delay کار نمیکنه.
کد:
void main() {
TRISB=0;
TRISD=0x04;
while(1){
if(PORTD.F2==1) {
PORTB.F7=1;
Delay_ms(1000);
PORTB.F7=0; }
else
PORTB.F7=0;
}
}
-----------------------------------------------------------------------------------TRISB=0;
TRISD=0x04;
while(1){
if(PORTD.F2==1) {
PORTB.F7=1;
Delay_ms(1000);
PORTB.F7=0; }
else
PORTB.F7=0;
}
}
با فشار دادن کلید LED روشن میشود و با رها کردن اون LED بلافاصله خاموش میشود. Fuse بیت ها به شکل زیر هستند.
کریستال 40MHZ است.
و جالب این که مشکل اصلا از Delay نیست کد زیر رو ببینید :
-----------------------------------------------------------------------------------
long int i;
long int t;
void main() {
TRISB=0;
TRISD=0x04;
while(1){
if(PORTD.F2==1) {
PORTB.F7=1;
for(t=0;t<100000000;t++)
for(i=0;i<100000000;i++);
PORTB.F7=0; }
else
PORTB.F7=0;
}
}
-----------------------------------------------------------------------------------long int t;
void main() {
TRISB=0;
TRISD=0x04;
while(1){
if(PORTD.F2==1) {
PORTB.F7=1;
for(t=0;t<100000000;t++)
for(i=0;i<100000000;i++);
PORTB.F7=0; }
else
PORTB.F7=0;
}
}
با این کد وقتی کلید رو فشار میدم LED روشن میشه ولی وقتی ولش میکنم LED بلافاصله خاموش میشه. Realy Amazing.
همین مشکل با MikroBasic هم به وجود میاد. از کسانی که با کامپایلر های Mkroe و میکرو های سری 18F کار کردن کمک کنند لطفا.
دیدگاه