Forum: Mikrocontroller und Digitale Elektronik Benötige µC Programm


von Niklas (Gast)


Lesenswert?

Hi
Ich benötige ein recht einfaches (glaube ich) geschriebenes programm für 
einen µC. ob PIC oder AVR is egal. Das programm besteht zum größten teil 
aus diesen sachen:

-LED 2 mal blinken lassen und dann erst leuchten.
-3 Eingänge (taster) und 3 ausgänge un es darf nur immer einer "an" sein
-ein taster wird ein mal betätigt und ausgang 1 geht an, nochmal und 
ausgang 2 is an
-µC 1 soll über eine strippe (ohne + und masse gesehen) µC 2 sagen was 
grade betätigt wurde (zwei identische porgramme) (prinzip der 
computertastatur)


So das wären die grundlegenden dinge.
Das Problem ist, dass ich das thema µC nie erklärt bekommen habe und 
versucht habe mich schlau zu lesen, was ohne hilfe sehr schwer ist, 
daher bitte ich mich zu unterstützen und zu beraten, welche art von µC 
sich anbietet.

Per ICQ were dass sehr gut zu machen (243653075)

Gruß Niklas

von JLo0815 (Gast)


Lesenswert?

Das ist so simpel, das kann fast jeder Mikrocontroller, z.B. ein 
ATmega8.

Wie man das programmiert steht in der Wiki im Tutorial, Teil 
IO-Grundlagen. Wenn du das gelesen hast und immer noch Fragen sind, dann 
meld dich wieder. Sorry, aber du brauchst keinen ICQ-Erklärbär für 
Sachen die schon 10000-mal irgendwo im Netz erklärt sind.

von Peter D. (peda)


Lesenswert?

Das Problem ist, jemanden als Gefälligkeit was für umme zu proggen, ist 
ein Faß ohne Boden.
Derjenige wird immer noch weitere Extrawünsche haben und immer 
unzufrieden sein, bis der gutmütige Zeitgenosse alles verärgert 
hinschmeißt.


In der kommerziellen Praxis läuft das daher völlig anders.
Der Auftraggeber ist bemüht, alles komplett zu beschreiben und dann wird 
das in Stein gemeißelt und der Preis festgesetzt.
Alle Extrawünsche kosten dann empfindlich mehr, damit der Auftraggeber 
sich am Riemen reißt.


Da Dein Projekt die Vernetzung 2-er MCs verlangt, ist das schonmal kein 
Anfängerprojekt.
Es muß ein Ubertragungsverfahren und ein Datenprotokoll inklusive 
Fehlerbehandlung (Retry usw.) festgelegt werden.
Bei bidirektional kommt nochmal Kollisionsauflösung hinzu.


Peter

von Unverschämtheit (Gast)


Lesenswert?

>Per ICQ were dass sehr gut
Rechtschreibung, Groß- und Kleinschreibung?

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

@Niklas

> Ich benötige ein recht einfaches (glaube ich) geschriebenes programm für
> einen µC. ob PIC oder AVR is egal.
> Das programm besteht zum größten teil aus diesen sachen:

> [ grobe Beschreibung dessen was das Programm machen soll ]



Das generelle Grundprinzip bei uC ist immer identisch: Es gibt 
Ein-Ausgabeschnittstellen (serielle oder parallele Ports) über die man 
z.B. in (z.B. Tastenzustände  einlesen) oder  out (z.B. LED einschalten 
) Operationen durchführen kann.

Das wichtige ist jedoch dabei nicht, ob oder wie der Prozessor heißt, 
oder wie der zugehörige Assembler-Befehl heißt, der da das 4. Bit von 
links auf einen Wert abfragt, oder das 3 Bit von schräg oben auf 1 oder 
0 setzt.  Das Wesentliche ist statt dessen, daß du den benötigten 
Algorithmus so formulierst, das er funktioniert. Das kann in 
"Pseudosprache" (also ähnlich wie umgangssprachlich), in einer 
Programmiersprache (z.B Pascal, C oder sonstwas) oder in klingonisch 
sein

Also fangen wir mal an deine Grundidee zu zerpflücken und weiter 
aufzubauen:

Du hast also zwei autonome Systeme. Der erste ist der aktive und der 2. 
ist der passive uC.

--------

fangen wir an mit dem passiven 2. System:
es soll einen Status ausgeben, und sonst nix. Anscheinend empfängt (so 
deine Beschreibung) der 2. uC nur Informationen (es geht also nur in 
eine Richtung)

dann ist das Programm dazu ja recht simpel:

Begin
initialisiere irgendwas
wiederhole bis zum St-Nimmerleins-Tag
    lese einen darzustellenden Eingabewert ein
    geben den Eingabewert geeignet aus
    warte eine bestimmte Zeit (z.B. 1 Sekunde)
ende der Wiederholschleife

Einfach für die Eingabe- und Ausgaberoutine wäre es, wenn die 
Übertragung der Informationen parallel erfolgen würde, dann bräuchte man 
nur Daten "roh" abzuholen, und nahezu gleich "roh" wieder auszugeben. Du 
sprachst aber von "eine Strippe", also mußt du die Informationen 
"irgendwie" seriell übertragen und aufbereiten. Möglicherweise 
unterstützt der von dir auszuwählende uC schon soetwas, hat also direkt 
eine serielle Schnittstelle "mit drin", dann geht es halbwegs einfach, 
und andernfalls mußt du dir die serielle Übertragung und Wandlung von 
Seriell auf Parallel in Software bauen.

Jetzt nimm einfach an, das das Thema "lösbar" ist (seriell Übertragung 
per Hardware oder per Software), und wende dich beruhigt dem 1. System 
zu.

--

Jetzt also der 1. uC:

er soll 3 Tasten auslesen, und abhängig von irgendwelchen Tastendrücken 
sollen irgendwelche  LED an oder aus gehen. Grundsätzlich ist das auch 
nix unmögliches, aber aus deiner Beschreibung werde ich nicht schlau.

Ich fang mal an "top down" zu "designen":

Begin
initialisiere irgendwas
mache erste Aktionen
    blinke 2 mal                     /* Keine Ahnung ob das so sein soll 
*/
wiederhole bis zum St-Nimmerleins-Tag
    lese den Zustand von 3 Tasten ein

    "mache was"

    geben den ermittelten Zustand geeignet aus auf den LED
    übermittle den Zustand an den 2 uC
    warte eine bestimmte Zeit (z.B. 1 Sekunde)
ende der Wiederholschleife



Du solltest dir nun Gedanken machen, was das "mache was" nun genau 
bewirken soll, d.h. welchen Zustand was bewirken soll. Bedenke, daß auch 
mehrere Tasten gleichzeitig gedrückt werden könnten, und daß auch dann 
irgend eine eindeutige Entscheidung / Reaktion passieren soll

Wenn du darüber nachgedacht hast, wie sich das System verhalten soll, 
dann komm wieder, und dann erzählt dir jemand, wie es weiter geht

also dann, "Qapla’"  (--> 
http://de.wikipedia.org/wiki/Klingonische_Sprache)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.