STK500 Programmierhilfe

Gast #3581078
Lesenswert?

Hallo Jungs

Ich probiere momentan mit einem STK500 und ein ATmega88

Programmverlauf:

Wenn Taste PDC0 gedrückt wird, dann soll geprüft werden, ob alle 
EIngänge am PORTB eine 1 haben, ist das nicht der Fall sollen Die PINs 
in Port B, die keine "1" haben, detektiert und die passenden LED in 
PORTD ausgeschaltet werden.
ich denke die folgende Zeile funktioniert nicht[if (( StatusPortB != 
DiodeOk)) ] was amche ich da falsch.
Danke im Voraus

Programm:

#include <avr/signal.h>
#include <avr/sleep.h>
#include <stdint.h>
#include <avr/io.h>
#include <util/delay.h>

#define BIT(x)  (1 << (x))
#define BITC(ADDRESS,BIT) (!(ADDRESS & (1<<BIT)))
#define BITS(ADDRESS,BIT) (ADDRESS & (1<<BIT))

#define SETB(ADDRESS,BIT) (ADDRESS |= (1<<BIT))
#define CLEARB(ADDRESS,BIT) (ADDRESS &= ~(1<<BIT))


char StatusPortB, StatusPortC, DiodeOk ;
volatile unsigned int j, Diode_count ;

int main(void)
{

// configure I/O ports as INPUT
        DDRB = 0b00000000;
  PORTB = 0b11111111;
  DDRC = 0b000000;
  PORTC = 0b111111;

// configure I/O ports as OUTPUT
  DDRD = 0b11111111;
  PORTD = 0b00000000;

  while (1)
  {
    DiodeOk=0b11111111
    StatusPortB=PINB;
    StatusPortC=PINC;

    if (BITC(PINC,0))       // Wenn Taster PINC0 gedrückt ist, dann...
    {
      if (( StatusPortB != DiodeOk))  // wenn PORTB 0...bis 7 ungleich 1
      {
        for (j = 0; j <= 7; j++)
        {
          if  BITS(PINB,j)
          {
            SETB(PORTD,j);
            _delay_ms(100);

          }

        }
      }

      else
      {
        PORTD = 0b00000000;

      }

    }

  }

}
Gast #3581116
Lesenswert?

spess53 schrieb:
> Hi
>
>>ob alle EIngänge am PORTB eine 1 haben
>
> Du solltest aber beachten, das PB6 und PB7 nicht mit der Stiftleiste
> 'PortB sondern mit XT1 und XT2 der Stiftleiste PortE verbunden sind.
>
> MfG Spess

PortB ist bei mir garnicht angeschlossen, musste also eine 0 am PIn 
haben oder verstehe ich das falsch?

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