سلام دوستان
توی دستورات 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); } }
با تشکر
دیدگاه