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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.