www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RS-Fliplop virtuell im Mega8


Autor: dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe gerade mit euerem AVR-GCC-Tutorial begonnen. Als erstes eigenes 
Programm will ich ein RS-Flipflop "simulieren"
#include <stdint.h>
#include <avr/io.h>          

int main (void) {           

DDRD = (1 << DDD5) | (1 << DDD6) ; //Leds als Ausgang
      
 
while (1) {   


if ( PINC & (1<<PINC2) ) {         //set abfragen
 PORTD = (1 << DDD6);              //  Q setzen
}


if ( PINC & (1<<PINC3) ) {        //reset abfragen
 PORTD &= ~(1<<DDD6);             // Q löschen
}

}             

   return 0;                 
}

leider funktioniert das nicht ganz so wie ich will: Die Led ist immer an 
(zumindest für das menschliche Auge) Oszilloskop habe ich (noch) nicht.
Zum testen benutze ich das ATMEL Evaluations-Board Version 2.0.1 von 
Pollin.
Was mach ich den da falsch?
Währe wirklich nett wenn ihr mir helfen könntet.


Gruß Dominik

Autor: Marcus Woletz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Dominik,

nach einem kurzen Blick scheint das Programm in Ordnung zu sein.
Wie hast Du das Programm übersetzt? Wie sind die LEDs angeschlossen? 
(Ich kenne das Testboard nicht)

ciao

Marcus

Autor: FlipFlop (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich weiß nicht, wie die LED's geschaltet sind, vielleicht sind sie 
extern mit Spannung versorgt und eine "0" am µC lässt die LED leuchten. 
Aber davon mal abgesehen stellen die Abfragen in dem Programm nicht die 
Funktion eines RS-FF dar.

Autor: dominik (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
vielen Dank für die schnellen Antworten!

@ Marcus Woletz:  das Programm wurde mit "make" übersetzt das makefile 
ist im Anhang und dann mit avrdude -p m8 -b 1200 -P/dev/ttyS0 -c ponyser 
-U flash:w:main.hex übertragen. (OS:Ubuntu 9.04) Die LEDs 
funktionieren,habe ich mit dem Testtool überprüft. Wenn die Leds mit 0V 
eingeschaltet würden hätte ich einfach einen negierten Ausgang oder irre 
ich mich da komplett?
Das komische ist ja das die Led nie auf irgend eine Tastenbetätigung 
reagiert.

@ FlipFlop
auf einen Negierten Ausgang habe ich verzichtet. Mir würde es sehr 
helfen wenn du mir sagen würdest welche Funktion eines RS - Flipflops 
nicht erfüllt wird bzw wo ich ansetzen könnte um den Code -wenn er 
funktioniert- zu verbessern.

Gruß Dominik

Autor: Marcus Woletz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo FlipFlop,

"Aber davon mal abgesehen stellen die Abfragen in dem Programm nicht die
Funktion eines RS-FF dar."

Aber das Programm erfüllt IMO vermutlich die Funktion, die der OP 
erwartet:
Set-Eingang auf Spannung gelegt: LED wird eingeschaltet. Spannung auf 
Reset-Eingang: LED wird ausgeschaltet.

ciao

Marcus

Autor: Marcus Woletz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Dominik,

ich frage aus folgendem Grund nach der Toolchain:

ich hatte mal ein Problem, dass ein Programm sich völlig unsinnig 
verhielt. Irgendwann stellte sich dank eines freundlichen Helfers hier 
heraus, dass ich in meiner Toolchain nirgends den Startupcode 
eingebunden hatte. Das hatte zu Folge, dass verschiedene Dinge, die der 
Compiler als gegeben voraussetzt, zur Laufzeit dann nicht zutreffen 
(nicht belegte Register etc.)
Aus dem Makefile sehe ich jetzt nicht direkt, ob bei Dir der Startupcode 
eingebunden wird.

ciao

Marcus

Autor: dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Marcus Woletz
das makefile habe vom Tutorial übernommen und eigentlich nicht großartig 
verändert. ich vermute einmal der Startupcode hat etwas mit dem Linker 
zu tun. Könntest du mir den Link zum Beitrag dazu schicken ich finde den 
nicht mit der Suche.

Gruß Dominik

Autor: H.j.Seifert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zufällig einen Mega-AVR mit JTAG benutzt? Dann liegt es daran, PIN C2 
und C3 sind für JTAG konfiguriert, Fuse ausschalten.

Autor: dominik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@H.j.Seifert: ich verwende einen Mega 8 der meines Wissens kein JTAG 
unterstützt

Autor: Entwickler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für Dein Programm ist es notwendig, dass die Taster gegen High schalten 
und die Eingänge Pull Downs besitzen. Ist das der Fall ?

Autor: Jan Dressler (keyman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo.
hatte das board grade rumliegen und hab es mal eben geflashed.
also bei mir geht das
=> liegt wohl an deiner tasterbeschaltung oder so.

aber: wenn du sowieso das testboard hast wieso nutzt du zum anfang nicht 
die taster auf dem board?
habe das im testaufbau grade mal gemacht.
die taster 1 und 2 liegen auf PD2 und PD3 (also einfach D statt C!).
wäre mal so als einstieg vll ned verkehrt, und dann guck einfach mal wie 
pollin die taster beschaltet hat, so musst dus auch machen: also eben an 
5V und über R und C an GND.
viel spaß
jan

/edit: dann aber aufpassen mit den portdefinitionen mit ein- und 
ausgang!

Autor: Horst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hätte jetzt auch den Verdacht von Entwickler.
Alternativ: Verwendest du den richtigen Pin für den Ausgang?
Kannst du mit dem Controller einfach die LED zum blinken bringen?
Danach kannst du versuchen, beim starten des Controllers die LED 
leuchten zu lassen und mit einem Tastendruck dann einfach die LED 
permanent abschalten.
Dann genau umgekehrt, erst mit der Taste einschalten.
Dann mit der anderen Taste.

Autor: Horst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Blinklicht als erstes Programm hat schon einen Sinn: du hast eine 
funktionierende Ausgabe. Mit der kannst du dann anzeigen, was z.B. an 
Eingängen gelesen wird.

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.