Zdravím,
docela nechápu jedno prostou věc. Mam jednoduchý kod který kopíruje logickou nulu ze vstupu na odlišný výstup MCU jako logickou jedničku. Neni v tom problém ono ani nejde o tento kod, ale o to že pokud přidám do kodu více podmínek z nějakého důvodu kod nepracuje tak jak má, a pak nejsem schopen napsat nějaký kloubný program, aneb avr rulez. Né vážně třeba někde fakt dělám chybu tak bych rád veděl kde abych se už konečně mohl "rozjet". (Klíčové slovo volative jsem také zkusim, bohužel marně. )
#define F_CPU 1000000
#include <avr/io.h>
#include <util/delay.h>
#define INPIN PB0
bool bFalling = false;
bool bReset = false;
int main (void)
{
DDRB &= !_BV(INPIN);
DDRB |= _BV(1);
/* Init */
bFalling = false;
bReset = false;
for (;;)
{
if(bReset == false)
{
if(bFalling == false)
{
if(bit_is_clear(PINB, INPIN))
{
PORTB |= _BV(1);
bFalling = true;
}else{
PORTB &= ~_BV(1);
}
}
}
}
}
Problém je v tom že pokud zakomentuju podmínku s boolem bFalling vše pracuje ok. Pokud tam však je, nechápu proč se mě na výstup pinu PB1 nic neděje. (Mam logický analyzýtor)..