1-دو ماکرو ساده برای ریست نرم افزاری AVR
[code=c]#define RESET() (((void(*)(void))(char *)0x0000)())
#define RESET() ((void(*)())0x0)()[/code]
هر دو یک کار انجام میدهد خط دوم خلاصه شده خط اول است. پس برای استفاده کافی است یکی از این دو ماکرو را انتخاب کرده و در برنامه آنرا بکار ببریم.
اضافه شده در تاریخ :
2-چند ماکرو برای تنظیمات اولیه و استفاده از پین ها به سادگی در برنامه با مثال نحوه استفاده از آن.
[code=c]// Makros for simplified single pin io access.
#define PORT_(port) PORT ## port
#define DDR_(port) DDR ## port
#define PIN_(port) PIN ## port
#define PORT(port) PORT_(port)
#define DDR(port) DDR_(port)
#define PIN(port) PIN_(port)
#define SET_OUTPUT(p) DDR(p##_PORT) |= (1<<p##_BIT) // SET PINx OF PORTy AS OUTPUT
#define SET_INPUT(p) DDR(p##_PORT) &=~(1<<p##_BIT) // SET PINx OF PORTy AS INPUT
#define OUTPUT_ON(p) PORT(p##_PORT) |= (1<<p##_BIT)
#define OUTPUT_OFF(p) PORT(p##_PORT) &=~(1<<p##_BIT)
#define INPUT(p) ((PIN(p##_PORT) & (1<<p##_BIT)) != 0)
/* Use Like this:
#define LED_PORT C
#define LED_BIT 7
#define SWITCH_PORT B
#define SWITCH_BIT 0
int main(){
SET_OUTPUT(LED); //set to output
OUTPUT_ON(SWITCH); //turn on pullup
if(INPUT(SWITCH)){
OUTPUT_ON(LED);
}else{
OUTPUT_OFF(LED);
}
}*/
[/code]
[code=c]#define RESET() (((void(*)(void))(char *)0x0000)())
#define RESET() ((void(*)())0x0)()[/code]
هر دو یک کار انجام میدهد خط دوم خلاصه شده خط اول است. پس برای استفاده کافی است یکی از این دو ماکرو را انتخاب کرده و در برنامه آنرا بکار ببریم.
اضافه شده در تاریخ :
2-چند ماکرو برای تنظیمات اولیه و استفاده از پین ها به سادگی در برنامه با مثال نحوه استفاده از آن.
[code=c]// Makros for simplified single pin io access.
#define PORT_(port) PORT ## port
#define DDR_(port) DDR ## port
#define PIN_(port) PIN ## port
#define PORT(port) PORT_(port)
#define DDR(port) DDR_(port)
#define PIN(port) PIN_(port)
#define SET_OUTPUT(p) DDR(p##_PORT) |= (1<<p##_BIT) // SET PINx OF PORTy AS OUTPUT
#define SET_INPUT(p) DDR(p##_PORT) &=~(1<<p##_BIT) // SET PINx OF PORTy AS INPUT
#define OUTPUT_ON(p) PORT(p##_PORT) |= (1<<p##_BIT)
#define OUTPUT_OFF(p) PORT(p##_PORT) &=~(1<<p##_BIT)
#define INPUT(p) ((PIN(p##_PORT) & (1<<p##_BIT)) != 0)
/* Use Like this:
#define LED_PORT C
#define LED_BIT 7
#define SWITCH_PORT B
#define SWITCH_BIT 0
int main(){
SET_OUTPUT(LED); //set to output
OUTPUT_ON(SWITCH); //turn on pullup
if(INPUT(SWITCH)){
OUTPUT_ON(LED);
}else{
OUTPUT_OFF(LED);
}
}*/
[/code]
دیدگاه