eRTK
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
Functions | Variables
main.c File Reference
#include <avr/io.h>
#include <stdio.h>
#include "eRTK.h"
#include "uart.h"
#include "adc.h"
Include dependency graph for main.c:

Go to the source code of this file.

Functions

void tskHighPrio (uint16_t param0, void *param1)
 
void tskUART (uint16_t param0, void *param1)
 
void tskADC (uint16_t param0, void *param1)
 
int main (void)
 

Variables

tadc adc_cntrl [ANZ_ADC]
 
const t_eRTK_tcb rom_tcb [VANZTASK]
 

Function Documentation

int main ( void  )

Definition at line 100 of file main.c.

100  {
101  eRTK_init();
102  eRTK_timer_init();
103  adc_init();
104  eRTK_go();
105  }
void eRTK_go(void)
Definition: eRTK.c:151
void eRTK_init(void)
Definition: eRTK.c:371
void adc_init(void)
void eRTK_timer_init(void)
Definition: eRTK.c:515

Here is the call graph for this function:

void tskADC ( uint16_t  param0,
void *  param1 
)

Definition at line 82 of file main.c.

82  { //prio ist 15
83  while( 1 ) { //task wartet bis neue adc messung vorliegt, kanal 0 hat teiler 10 -> 1000/10=100ms datenrate
84  static char txt[10];
85  snprintf( txt, sizeof txt, "%u", adc_wait( 0 ) );
86  eRTK_Sleep_ms( 10 );
87  }
88  }
void eRTK_Sleep_ms(uint16_t ms)
Definition: eRTK.c:280
uint16_t adc_wait(uint8_t mux)
Definition: adc.c:139

Here is the call graph for this function:

void tskHighPrio ( uint16_t  param0,
void *  param1 
)

Definition at line 46 of file main.c.

46  { //prio ist 20
47  while( 1 ) { //kurze aktivitaet auf prio 20 muss alles auf prio 10 sofort unterbrechen
48  eRTK_Sleep_ms( 10 );
49  }
50  }
void eRTK_Sleep_ms(uint16_t ms)
Definition: eRTK.c:280

Here is the call graph for this function:

void tskUART ( uint16_t  param0,
void *  param1 
)

Definition at line 59 of file main.c.

59  { //prio ist 10
60  while( 1 ) { //com test
61  char buffer[50];
62  uint8_t rec;
63  tUART h=open( UART0+param0 ); //das klappt weil UART0+1=UART1, usw.
64  while( h ) { //bei einer loop back verbindung wird RX mit TX verbunden und es laeuft ohne time out
65  read( h, NULL, 0, 0 ); //clear rx buffer
66  write( h, "1", 1 ); //schreibe ein zeichen auf die leitung
67  rec=read( h, buffer, 1, 100 ); //lies ein zeichen mit 100ms time out
68  write( h, "abcdef", 6 );
69  rec=read( h, buffer, 6, 100 );
70  write( h, "0123456789ABCDEFGHIJ", 20 ); //hier ist der auszugebende string laenger als der interne puffer, es kommt ein spezieller mechanismus zum tragen, der abwartet bis der sendepuffer leer ist
71  rec=read( h, buffer, 16, 100 ); //hier muss timeout entstehen da der empfangspuffer nur auf 16 zeichen eingestellt ist und wir nicht rechtzeitig auslesen koennen bevor ein overflow entsteht
72  }
73  }
74  }
tUART
Definition: uart.h:68
void write(tUART port, void *puffer, uint8_t nbytes)
Definition: uart.c:373
uint8_t read(tUART port, void *puffer, uint8_t nbytes, uint8_t timeout)
Definition: uart.c:249
tUART open(tUART port)
Definition: uart.c:51
Definition: uart.h:70

Here is the call graph for this function:

Variable Documentation

tadc adc_cntrl[ANZ_ADC]
Initial value:
={
{ .mux=0, .ref=( 1<<REFS0 ), .scaler=10 },
{ .mux=8, .ref=( 1<<REFS0 ), .scaler=1 }
}

Definition at line 77 of file main.c.

const t_eRTK_tcb rom_tcb[VANZTASK]
Initial value:
={
{ tskUART, 10, 0, "UART1" },
{ tskUART, 10, 1, "UART2" },
{ tskUART, 10, 2, "UART3" },
{ tskUART, 10, 3, "UART4" },
{ tskHighPrio, 20, 1, "highp" },
{ tskADC, 15, 0, "adc" }
}
void tskHighPrio(uint16_t param0, void *param1)
Definition: main.c:46
void tskADC(uint16_t param0, void *param1)
Definition: main.c:82
void tskUART(uint16_t param0, void *param1)
Definition: main.c:59

Definition at line 90 of file main.c.