sensors.c
来自「专业汽车级嵌入式操作系统OSEK的源代码」· C语言 代码 · 共 136 行
C
136 行
#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 + =
减小字号Ctrl + -
显示快捷键?