www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Pollinboard zwei programme


Autor: Neuling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe mir als neuling das das Pollin Board mit Addon Bestellt und nun 
das C-Tut Hier im Forum durchgelesen und das zum Pollin Board 
http://www.mikrocontroller.net/articles/Pollin_Fun... 
durchgearbeitet.
nun möchte ich zwei Programme auf ein AVR zusammen laufen lassen erstmal 
zweimal Tasty aber ich bekomme es nicht hin:-(
wen Taster 1 gedrückt ist sollen Led2 an gehen und Led1 aus.
wenn Taster 2 gedrückt ist dann soll Led4 angehen und Led3 aus wird 
Taster 2 losgelassen sollen nach 2sec der ursprüngliche Led zustand 
wieder eingenommen werden.
einzeln bekomme ich es hin aber nicht wenn Beide zusammen laufen.
müssen 2x while sein oder wie muss das aus sehen?
besten dank schonmal

Autor: Testfall (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zwei Programme?
Nein, definitiv nicht!

Du musst dir das ganze in einer Schleife zusammenbasteln. Multitasking 
gibt es auf ATmegas nicht wirklich. Wäre auch Blödsinn. Schau nochmal 
ins Tutorial. Ich glaube da fehlt was am grundlegenden Verständnis.

Wenn ich das Problem missverstanden habe, einfach her mit dem Quelltext 
und den Wünschen, was der machen soll.

Autor: Pic_prog (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Neuling (gast)
Erst mal 'Willkommen' im Forum.
'Zwei Programme' ist etwas mißverständlich ausgedrückt.
Das Zauberwort für Deine Anwendung lautet wohl 'Fallunterscheidung', 
schau mal hier in diesem Tutorial nach 
http://www.mikrocontroller.net/articles/AVR-Tutori...

Autor: Serieller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Beispiel eignet sich ganz gut, um das Prinzip einer statemachine 
zu erlernen.

Autor: wiewowann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Testfall schrieb:
> Zwei Programme?
> Nein, definitiv nicht!
>
> Du musst dir das ganze in einer Schleife zusammenbasteln. Multitasking
> gibt es auf ATmegas nicht wirklich. Wäre auch Blödsinn. Schau nochmal
> ins Tutorial. Ich glaube da fehlt was am grundlegenden Verständnis.
>
> Wenn ich das Problem missverstanden habe, einfach her mit dem Quelltext
> und den Wünschen, was der machen soll.

Also ich habe das in Zwei Programmen ausprobiert und versucht es zu 
einem zusammen zu fügen nur es macht nur das vom Taster1

hier mal das was ich probiert habe

/*
    Atmega16
    Externer Quarz-Oszillator: 16 MHz

    Pollin Funk-AVR-Evaluationsboard v1.1
*/

#include <avr/io.h>
#include <util/delay.h>

// LEDs sind high-active geschaltet
#define LED_AN(LED)  (PORTD |=  (1<<(LED)))
#define LED_AUS(LED)  (PORTD &= ~(1<<(LED)))
#define LED_TOGGLE(LED)  (PORTD ^=  (1<<(LED)))
#define LED1    PD6
#define LED2    PD5
#define LED3    PD4
#define LED4    PD3



// TASTER ist high-active geschaltet
#define TASTER1  PB1
#define TASTER1  PB2
#define TASTER_GEDRUECKT(TASTER)  (PINB & (1<<TASTER))

int main(void)
{
  DDRB &= ~(1<<TASTER1) | (1<<TASTER2);           // Port B: Eingang für 
Taster
  DDRD |= (1<<LED1) | (1<<LED2) | (1<<LED3) | (1<<LED4); // Port D: 
Ausgang für LED1 und LED2

  while(1)
  {
  if (TASTER_GEDRUECKT(TASTER1))
      {
        LED_AN(LED2);
        LED_AUS(LED1);
      }
      else
      {
        LED_AUS(LED2);
        LED_AN(LED1);
      }


  if (TASTER_GEDRUECKT(Taster2))
      {
        LED_AN(LED4);
        LED_AUS(LED3);
      }
      else
      {
        _delay_ms(2000);
        LED_AUS(LED4);
        LED_AN(LED3);
      }
}
}

Danke schonmal
es sind gute tuts hier

Autor: Route_66 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Du hast 2mal TASTE1 definiert aber nicht TASTE2.

Autor: wiewowann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe ich geändert aber es ist nicht besser

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.