7 #ifndef ZRTOS_VFS_MODULE_AVR_ADC_H 8 #define ZRTOS_VFS_MODULE_AVR_ADC_H 14 #include <avr/interrupt.h> 38 #ifndef ZRTOS_VFS_MODULE_AVR_ADC__CFG_PRESCALER 39 #error "define ZRTOS_VFS_MODULE_AVR_ADC__CFG_PRESCALER as zrtos_vfs_module_avr_adc_prescaler_t value" 42 #ifndef ZRTOS_VFS_MODULE_AVR_ADC__CFG_VREF 43 #error "define ZRTOS_VFS_MODULE_AVR_ADC__CFG_VREF as zrtos_vfs_module_avr_adc_vref_t value" 46 #ifndef ZRTOS_VFS_MODULE_AVR_ADC__CFG_MAX_CHANNEL 47 #error "define ZRTOS_VFS_MODULE_AVR_ADC__CFG_MAX_CHANNEL" 50 #ifndef ZRTOS_VFS_MODULE_AVR_ADC__CFG_REFERENCE_VOLT 51 #warning "ZRTOS_VFS_MODULE_AVR_ADC__CFG_REFERENCE_VOLT not defined using 5 Volt" 52 #define ZRTOS_VFS_MODULE_AVR_ADC__CFG_REFERENCE_VOLT (5.0) 64 return (((
float)val) * vref) / 1024.0;
72 zrtos_vfs_module_avr_adc__data.
data[channel] = val;
82 ADMUX = (ADMUX & ~(0x1F)) | ((channel-8) & 0x1F);
84 ADCSRB &= ~(_BV(MUX5));
85 ADMUX = (ADMUX & ~(0x1F)) | (channel & 0x1F);
88 ADMUX = (ADMUX & ~(0x1F)) | (channel & 0x1F);
97 ADCSRB &= ~(_BV(MUX5));
121 size_t start_offset = (
size_t)offset;
122 size_t channel = start_offset/
sizeof(float);
124 if(len !=
sizeof(
float)
125 ||(start_offset %
sizeof(float)) != 0){
129 zrtos_vfs_module_avr_adc__data.
data[channel]
#define ZRTOS_VFS_MODULE_AVR_ADC__CFG_VREF
#define ZRTOS_BINARY__00000101
size_t zrtos_vfs_offset_t
#define ZRTOS_BINARY__01000000
#define ZRTOS_VFS_PLUGIN__0_ON_OPEN_DEFAULT()
#define ZRTOS_BINARY__00000111
#define ZRTOS_VFS_MODULE_AVR_ADC__CFG_PRESCALER
#define ZRTOS_VFS_PLUGIN__9_ON_IOCTL_DEFAULT()
zrtos_error_t zrtos_vfs_module_avr_adc__on_mount(zrtos_vfs_dentry_t *thiz)
#define ZRTOS_VFS_PLUGIN__5_ON_WRITE_DEFAULT()
#define ZRTOS_VFS_PLUGIN__8_ON_SEEK_DEFAULT()
#define ZRTOS_VFS_PLUGIN__1_ON_CLOSE_DEFAULT()
#define ZRTOS_BINARY__00000011
#define ZRTOS_VFS_MODULE_AVR_ADC__CFG_MAX_CHANNEL
#define ZRTOS_VFS_PLUGIN__3_ON_UMOUNT(callback)
struct zrtos_vfs_module_avr_adc_t zrtos_vfs_module_avr_adc_t
#define ZRTOS_VFS_PLUGIN__6_ON_CAN_READ_DEFAULT()
#define ZRTOS_BINARY__10000000
#define ZRTOS_VFS_PLUGIN__2_ON_MOUNT(callback)
uint16_t data[ZRTOS_VFS_MODULE_AVR_ADC__CFG_MAX_CHANNEL]
#define ZRTOS_VFS_PLUGIN__4_ON_READ(callback)
zrtos_error_t zrtos_vfs_module_avr_adc__on_read(zrtos_vfs_file_t *thiz, char *path, void *buf, size_t len, zrtos_vfs_offset_t offset, size_t *out)
void zrtos_mem__cpy(void *dest, void *src, size_t length)
Successful program execution status.
zrtos_error_t zrtos_vfs_module_avr_adc__on_umount(zrtos_vfs_dentry_t *thiz)
zrtos_vfs_module_avr_adc_vref_t
#define ZRTOS_VFS_MODULE_AVR_ADC__CFG_REFERENCE_VOLT
ZRTOS_VFS_PLUGIN__INIT(avr_adc, ZRTOS_VFS_PLUGIN__0_ON_OPEN_DEFAULT() ZRTOS_VFS_PLUGIN__1_ON_CLOSE_DEFAULT() ZRTOS_VFS_PLUGIN__2_ON_MOUNT(zrtos_vfs_module_avr_adc__on_mount) ZRTOS_VFS_PLUGIN__3_ON_UMOUNT(zrtos_vfs_module_avr_adc__on_umount) ZRTOS_VFS_PLUGIN__4_ON_READ(zrtos_vfs_module_avr_adc__on_read) ZRTOS_VFS_PLUGIN__5_ON_WRITE_DEFAULT() ZRTOS_VFS_PLUGIN__6_ON_CAN_READ_DEFAULT() ZRTOS_VFS_PLUGIN__7_ON_CAN_WRITE(zrtos_vfs_plugin__default_can_write_read_only) ZRTOS_VFS_PLUGIN__8_ON_SEEK_DEFAULT() ZRTOS_VFS_PLUGIN__9_ON_IOCTL_DEFAULT())
#define ZRTOS_BINARY__00000010
#define ZRTOS_VFS_PLUGIN__7_ON_CAN_WRITE(callback)
zrtos_vfs_module_avr_adc_t zrtos_vfs_module_avr_adc__data
float zrtos_vfs_module_avr_adc__to_volt(uint16_t val, float vref)
#define ZRTOS_BINARY__11000000
#define ZRTOS_BINARY__00000100
#define ZRTOS_BINARY__00000000
#define ZRTOS_BINARY__00000110
zrtos_error_t zrtos_vfs_plugin__default_can_write_read_only(struct _zrtos_vfs_file_t *thiz)
zrtos_vfs_module_avr_adc_prescaler_t