Aegeanshine Aegeanshine
关注数: 0 粉丝数: 106 发帖数: 117 关注贴吧数: 32
求教大神如何读取两个Button上的值并返回主函数 #include <avr/io.h> #include <inttypes.h> #include <MSOE/delay.c> void initGPIO (int x); void delay(uint16_t x); int buttonreading(int *x,int *y); int main(void) { DDRB |= (1<<PORTB1); DDRB |= (1<<PORTB2); DDRB |= (1<<PORTB3); DDRB |= (1<<PORTB4); DDRD &= ~(1<<PORTD1); PORTD |= (1<<PORTD1); DDRD &= ~(1<<PORTD2); PORTD |= (1<<PORTD2); while(1) { initGPIO(4); int a,b; buttonreading(&a,&b); while(a==0) { for(int i=4;i>=1;i--) { PORTB |= (1<<i); delay(50); PORTB &=~(1<<i); } } while(b==0) { PORTB &=~(1<<PORTB1); PORTB &=~(1<<PORTB2); PORTB &=~(1<<PORTB3); PORTB &=~(1<<PORTB4); } } } void initGPIO(int x) { for(int i=1;i<=x;i++){ PORTB |= (1<<i); delay(50); PORTB &= ~(1<<i); } } void delay(uint16_t x) { uint16_t i,j; for(i=0;i<x;i++) for(j=0;j<10000;j++) ; return; } int buttonreading(int *x,int *y) { x=PIND&(1<<PORTD1); y=PIND&(1<<PORTD2); } 这是我写的代码 但是连接到arduino board上似乎按钮是没反应的,按钮的连接应该是没问题。要求是一定要用函数来读取两个button的值,并返回主函数,如果第一个按钮按下去做for(int i=4;i>=1;i--) { PORTB |= (1<<i); delay(50); PORTB &=~(1<<i); } 如果第二个按钮按下去做 while(b==0) { PORTB &=~(1<<PORTB1); PORTB &=~(1<<PORTB2); PORTB &=~(1<<PORTB3); PORTB &=~(1<<PORTB4); } 请大家帮忙看看我的buttonreading函数是出了什么问题?如果有更好的函数能读取两个button的值也请发上来参考一下。
1 下一页