سلام دوستان
توی دستورات PIO در نرم افزار KEIL به دو صورت می توان از PIO استفاده کرد .
A-
و در مدل دیگر
استفده از دستورات
B-
در برنامه A از کتابخانه خاصی استفاده نشده ولی در برنامه B از کتابخانه LIB استفاده شده . حالا سوال اینجاست که ایا دستورات برنامه A استاندارد تر هستند نسبت به برنامه B . چون دستورات برنامه A همانند دستوراتی است که در IAR هم استفاده می شود .
با تشکر
توی دستورات PIO در نرم افزار KEIL به دو صورت می توان از PIO استفاده کرد .
A-
کد:
#include <AT91SAM7X256.h>
void delay(void){
unsigned int i;
for(i=0;i<1000000;i++);
}
int main(){
*AT91C_PIOA_PER = (1<<19)|(1<<20)|(1<<21)|(1<<22);
*AT91C_PIOA_OER = (1<<19)|(1<<20)|(1<<21)|(1<<22);
*AT91C_PIOB_PER = (1<<19)|(1<<20)|(1<<21)|(1<<22);
*AT91C_PIOB_OER = (1<<19)|(1<<20)|(1<<21)|(1<<22);
while(1){
*AT91C_PIOA_SODR = (1<<19)|(1<<20)|(1<<21)|(1<<22);
*AT91C_PIOB_CODR = (1<<19)|(1<<20)|(1<<21)|(1<<22);
delay();
*AT91C_PIOA_CODR = (1<<19)|(1<<20)|(1<<21)|(1<<22);
*AT91C_PIOB_SODR = (1<<19)|(1<<20)|(1<<21)|(1<<22);
delay();
}
}
استفده از دستورات
B-
کد:
#include <AT91SAM7X256.H>
#include <lib_AT91SAM7X256.h>
#include <delay.h>
int main (void) {
AT91F_PIO_CfgOutput(AT91C_BASE_PIOB, AT91C_PIO_PB19);
while(1){
AT91F_PIO_ClearOutput(AT91C_BASE_PIOB, AT91C_PIO_PB19);
delay_s(1);
AT91F_PIO_setOutput (AT91C_BASE_PIOB, AT91C_PIO_PB19);
delay_s(1);
}
}
با تشکر




دیدگاه