با سلام من پروژه خیلی ساده مثلا یک چشمک زن یا همون چمشک زن هم حذفش کردم وفقط میخواستم مصرف انرژی میکرو PIC18F452 را ببینم مطابق دیتا شیت که نوشته است یا خیر تغذیه به اون وصل کردم.
اما در حالت عادی تقریبا 4 میلی امپر میشکه و حتی و قتی دستور SLEEP میدم و میکر باید در این مد طبق دیتا شیت باید مصرف جریانش تقریبا در حد میکر وامپر باشه ولی در عمل اینگونه نیست و همون 3 الی 4 میلی امپر میکشه علتش چیه
برنامه هم مطابق زیر هستش.که وقتی از طریق وقفه خارجی اعمال شد میکرو از مد بیکاری در میاید
int main(int argc, char** argv) {
TRISBbits.RB2=0;
TRISBbits.RB0=1;
INTCONbits.GIE=1;
INTCON2bits.INTEDG0=0; //Eigher Falling INT0
INT0IF=0;
INT0IE=1;
ADCON0bits.ADON=0;
PORTBbits.RB2=0;
while(!flag){
PORTBbits.RB2=~PORTBbits.RB2;
delay_ms(2000);
}
SLEEP();
return (EXIT_SUCCESS);
}
void __interrupt I(void){
flag = ~flag;
INTCONbits.INT0IF=0;
}
اما در حالت عادی تقریبا 4 میلی امپر میشکه و حتی و قتی دستور SLEEP میدم و میکر باید در این مد طبق دیتا شیت باید مصرف جریانش تقریبا در حد میکر وامپر باشه ولی در عمل اینگونه نیست و همون 3 الی 4 میلی امپر میکشه علتش چیه
برنامه هم مطابق زیر هستش.که وقتی از طریق وقفه خارجی اعمال شد میکرو از مد بیکاری در میاید
int main(int argc, char** argv) {
TRISBbits.RB2=0;
TRISBbits.RB0=1;
INTCONbits.GIE=1;
INTCON2bits.INTEDG0=0; //Eigher Falling INT0
INT0IF=0;
INT0IE=1;
ADCON0bits.ADON=0;
PORTBbits.RB2=0;
while(!flag){
PORTBbits.RB2=~PORTBbits.RB2;
delay_ms(2000);
}
SLEEP();
return (EXIT_SUCCESS);
}
void __interrupt I(void){
flag = ~flag;
INTCONbits.INT0IF=0;
}