RS-Fliplop virtuell im Mega8

Gast #1378022
Lesenswert?

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

4
int main (void) {           
5

6
DDRD = (1 << DDD5) | (1 << DDD6) ; //Leds als Ausgang
7
      
8
 
9
while (1) {   
10

11

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

16

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

21
}             
22

23
   return 0;                 
24
}

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
Gast #1378107
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
Angehängte Dateien:
Gast #1378213
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
#1380652
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!
Gast #1380674
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.

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