eRTK
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
Functions
adc.c File Reference
#include "eRTK.h"
#include "adc.h"
Include dependency graph for adc.c:

Go to the source code of this file.

Functions

uint16_t adc_get (uint8_t mux)
 
uint16_t adc_wait (uint8_t mux)
 

Function Documentation

uint16_t adc_get ( uint8_t  mux)

Definition at line 124 of file adc.c.

124  { //holen des aktuellen wandlungswertes
125  uint16_t val=-1;
126  register tadc * padc=adc_cntrl;
127  while( padc<adc_cntrl+ANZ_ADC ) {
128  if( padc->mux==mux ) {
129  ATOMIC_BLOCK( ATOMIC_RESTORESTATE ) {
130  val=padc->value;
131  break;
132  }
133  }
134  ++padc;
135  }
136  return val;
137  }
#define ANZ_ADC
Definition: adc.h:18
Definition: adc.h:19
tadc adc_cntrl[ANZ_ADC]
Definition: main.c:77
uint16_t value
Definition: adc.h:24
uint8_t mux
Definition: adc.h:20
uint16_t adc_wait ( uint8_t  mux)

Definition at line 139 of file adc.c.

139  { //warten bis auf diesem kanal eine neue messung vorliegt und dann liefern
140  register tadc * padc=adc_cntrl;
141  while( padc<adc_cntrl+ANZ_ADC ) {
142  if( padc->mux==mux ) { //dieser kanal
143  uint8_t tid=eRTK_GetTid();
144  uint8_t m_sc;
145  ATOMIC_BLOCK( ATOMIC_RESTORESTATE ) {
146  padc->tid=tid;
147  m_sc=padc->scaler;
148  if( !m_sc ) {
149  padc->scaler=1; //damit er im naechsten takt wandelt
150  }
151  eRTK_SetSuspended( tid );
152  eRTK_scheduler();
153  }
154  padc->scaler=m_sc;
155  return padc->value;
156  }
157  ++padc;
158  }
160  return 0;
161  }
uint8_t eRTK_GetTid(void)
Definition: eRTK.c:233
uint8_t scaler
Definition: adc.h:22
#define ANZ_ADC
Definition: adc.h:18
Definition: adc.h:19
void deadbeef(tsys reason)
void eRTK_SetSuspended(uint8_t tid)
Definition: eRTK.c:255
tadc adc_cntrl[ANZ_ADC]
Definition: main.c:77
uint8_t tid
Definition: adc.h:25
uint16_t value
Definition: adc.h:24
uint8_t mux
Definition: adc.h:20

Here is the call graph for this function:

Here is the caller graph for this function: