Indice

Microcontrollers and bit operations

Bit operations

See this

http://www.nongnu.org/avr-libc/user-manual/group__avr__sfr.html

Problema e soluzione

hack di basso livello che a quanto pare risolve un problema

in determinate condizioni (aria, led on) il modulo rele si pianta con il pin DIR485 alto, quindi driver 485 acceso fisso, quindi la linea 485 risulta compromessa fino al reset del dispositivo

a quanto pare il problema si risolve sostituendo le PORTD|=(1«BIT) e simili con piu' bit, sul main.c, con l'assembly sbi PORTD,BIT e le &=~ con il cbi

Se e' come penso, il compilatore sostituisce PORTD|=() con una sequenza read, calc, write

Se parte un interrupt che abbassa la DIR tra read e write mi trovo a scrivere DIR alta quando il dispositivo pensa che sia bassa, e li muore tutto