sketchbook
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Functions | Variables
onewire.c File Reference
#include "onewire_internal.h"
#include <avr/eeprom.h>
#include <string.h>

Functions

void onewire_init (void)
 
void _next_idle (void)
 
void next_command (void)
 
void _wait_complete (void)
 
void xmit_byte (uint8_t val)
 
uint8_t recv_any_in (void)
 
void recv_byte (void)
 
uint16_t recv_bytes_crc (uint16_t crc, uint8_t *buf, uint8_t len)
 
char _onewire_poll (void)
 
void onewire_poll (void)
 
void set_idle (void)
 
 DBG_OFF ()
 
 DBG_ON ()
 
 if (CHK_INT_EN())
 
else switch (lmode)
 
 if (lmode==OWM_SLEEP)
 
void real_PIN_INT (void)
 

Variables

ow_addr_t ow_addr
 
volatile uint8_t bitp =lbitp
 
volatile uint8_t bytep
 
volatile uint8_t cbuf
 
volatile xmode_t xmode
 
volatile wmode_t wmode =lwmode
 
volatile uint8_t actbit =lactbit
 
 TIMER_INT
 
uint8_t p = !!(ONEWIRE_PIN&ONEWIRE_PBIT)
 
mode_t lmode =mode
 
wmode_t lwmode =wmode
 
uint8_t lbitp =bitp
 
uint8_t lactbit =actbit
 
 mode =lmode
 

Function Documentation

void _next_idle ( void  )
char _onewire_poll ( void  )

The reason for splitting onewire_poll() into two functions (and for the OS_task attribute) is that otherwise, AVR-GCC will use a heap of registers to put all my debugging constants into separate registers before entering the loop. That is completely unnecesary and eats a lot of time.

void _wait_complete ( void  )
DBG_OFF ( )
DBG_ON ( )
if ( CHK_INT_EN()  )
if ( lmode  = OWM_SLEEP)
void next_command ( void  )
void onewire_init ( void  )
void onewire_poll ( void  )
void real_PIN_INT ( void  )
uint8_t recv_any_in ( void  )
void recv_byte ( void  )
uint16_t recv_bytes_crc ( uint16_t  crc,
uint8_t *  buf,
uint8_t  len 
)
void set_idle ( void  )
else switch ( lmode  )
void xmit_byte ( uint8_t  val)

Variable Documentation

actbit =lactbit
bitp =lbitp
volatile uint8_t bytep
volatile uint8_t cbuf
uint8_t lactbit =actbit
uint8_t lbitp =bitp
mode_t lmode =mode
wmode_t lwmode =wmode
mode =lmode
ow_addr_t ow_addr
uint8_t p = !!(ONEWIRE_PIN&ONEWIRE_PBIT)
TIMER_INT
Initial value:
{
DBG_ON()
wmode =lwmode
volatile xmode_t xmode