ATtiny2313 Problem mit LEDS

Gast #1630049
Lesenswert?

moin,
ich muss für ein Projekt einen µC programmieren.
Der µC soll Schubladen überwachen. Wenn die Schubladen länger als 20 sec 
offen sind soll mit dem Realais eine 24 V Lampe und Summer geschaltet 
werden.
Die rote LED soll 20 sec blinken und dann soll das Relais geschaltet 
werden.

Mein Problem nun wenn ich die Led blinken lassen möchte geht die LED 
zwar an aber nicht wieder aus.
Hier mal der Code und der Schaltplan.
Schaltplan :http://img94.yfrog.com/i/schaltplan.jpg/
Code
#include <avr/io.h>
#include <util/delay.h>
#include <inttypes.h>

void timer(uint16_t ms)
{
    for(; ms>0; ms--)
  {
     _delay_ms(1);

  }
}

uint8_t bTaster1;
uint8_t bTaster2;
uint16_t zeit;

int main (void)
{
  DDRB   =( (1<<PB0) | (1<<PB3) ) ;
  PORTB  =( (1<<PB1) | (1<<PB2) );

  for(;;)
  {
    if(bit_is_set(PINB,1))
    {
      bTaster1=1;
    }
    else
    {
      bTaster1=0;
    }

    if(bit_is_set(PINB,2))
    {
      bTaster2=1;
    }
    else
    {
      bTaster2=0;
    }

    if (bTaster1 || bTaster2)
    {
      for(zeit=10;zeit>0;zeit--)
      {
        PORTB  =(1<<PB3);
        timer(1000);
        PORTB =~(1<<PB3);
        timer(1000);
      }
    }PORTB  |=((1<<PB0) |(1<<PB3));
    else
    {
      PORTB &=~(1<<PB3);
    }

    if (bTaster1 && bTaster2)
    {
      PORTB = ( (1<<PB0)| (1<<PB3) );
    }
    else
    {
      PORTB &= ~( (1<<PB0) | (1<<PB3) );
    }
  }
return 0;
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren