Forum: Mikrocontroller und Digitale Elektronik ATtiny2313 Problem mit LEDS


von yuKi (Gast)


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;
}

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.