📄 sensors.c
字号:
#include "platform_config.h"#include "types.h"#include "stack.h"#include "threads.h"#include "classes.h"#include "language.h"#include "sensors.h"#include "poll.h"#include "at91sam7s256.h"#include "nxt_avr.h"extern int verbose;sensor_t sensors[N_SENSORS] = { {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}, {0, 0, 0, 0, 0}};voidinit_sensors(void){ int i; for (i = 0; i < N_SENSORS; i++) { unset_digi0(i); unset_digi1(i); nxt_avr_set_input_power(i, 0); }}/** * Read sensor values */voidpoll_sensors(void){ byte i; sensor_t *pSensor = sensors; for (i = 0; i < N_SENSORS; i++, pSensor++) { pSensor->value = sensor_adc(i); }}voidread_buttons(int dummy, short *output){ *output = (short) buttons_get();}voidcheck_for_data(char *valid, char **nextbyte){ *valid = 0;}voidset_digi0(int sensor){ /* Enable output on the pin */ int functions[] = { AT91C_PIO_PA23, AT91C_PIO_PA28, AT91C_PIO_PA29, AT91C_PIO_PA30 }; *AT91C_PIOA_PER |= functions[sensor]; *AT91C_PIOA_OER |= functions[sensor]; /* Set high */ *AT91C_PIOA_SODR |= functions[sensor];}voidunset_digi0(int sensor){ /* Enable output on the pin */ int functions[] = { AT91C_PIO_PA23, AT91C_PIO_PA28, AT91C_PIO_PA29, AT91C_PIO_PA30 }; *AT91C_PIOA_PER |= functions[sensor]; *AT91C_PIOA_OER |= functions[sensor]; /* Set low */ *AT91C_PIOA_CODR |= functions[sensor];}voidset_digi1(int sensor){ /* Enable output on the pin */ int functions[] = { AT91C_PIO_PA18, AT91C_PIO_PA19, AT91C_PIO_PA20, AT91C_PIO_PA2 }; *AT91C_PIOA_PER |= functions[sensor]; *AT91C_PIOA_OER |= functions[sensor]; /* Set high */ *AT91C_PIOA_SODR |= functions[sensor];}voidunset_digi1(int sensor){ /* Enable output on the pin */ int functions[] = { AT91C_PIO_PA18, AT91C_PIO_PA19, AT91C_PIO_PA20, AT91C_PIO_PA2 }; *AT91C_PIOA_PER |= functions[sensor]; *AT91C_PIOA_OER |= functions[sensor]; /* Set low */ *AT91C_PIOA_CODR |= functions[sensor];}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -