www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Frage an Atmlel Profis


Autor: Neuling AVR (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo habe angefangen mich mit dem 90S2313 zu befassen.
Leider bin ich noch nicht fit mit dem 90S2313.

Ich hoffe Ihr könnt mir Helfen ?

Nun mein Problem:
Ich möchte den 90S2313 so programmieren,
das wenn am eingang 1-4 ein Low zustad ist am ausgang
1   z.b.   2 High impulse
2   z.b.   5 High impulse
3   z.b.  15 High impulse
ausgegeben werden

Wie könnte so ein listing aussehen ??

Vielen Dank im voraus
Reiner Klein

Autor: ThomasB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Listing ???
welcher Compiler - Programmiersprache, oder Assembler ???? ;-)

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vergiß erstmal alle Programmiersprachen.

Schalte den PC aus, nimm Papier und Stift und male Dir einen
Programmablaufplan auf.

Dann erst kannst Du auch anfangen, die einzelnen Programmschritte in
Code umzusetzen.

Und wenn dabei Probleme auftreten, frag ruhig wieder.

Falls ein Schritt mal zu komplex ist, unterteile ihn erstmal in weitere
Teilschritte.

Es ist nämlich viel einfacher ein Problem Schritt für Schritt zu lösen,
als alles zusammen auf einen Ruck.


Wenn die Probleme aber schon beim Aufmalen des Programmablaufs
auftreten wirds echt schwierig. Denn wenn Du schon nicht richtig weißt,
was Dein Programm machen soll, wie soll das dann erst ein anderer
rauskriegen ?


Peter

Autor: Neuling AVR (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK Danke das werde ich jetzt mal machen.



Aber ein beispiel würde mich schon mal interessieren.
damit ich den weg sehen kann.

Wegen der Programmiersprache währe ich auch für Hilfe dankbar,
da ich wie gesagt erst am beginnen bin.

Momentan habe ich mir mit dem 90s2313 ein Programierboard gebaut,
bei dem ich 8 schalter und 8 leds drauf habe.
OK led ein oder aus das bekomme ich hin,  aber wie gesagt ich möchte
lernen  wenn ich den taster 1 drücke dieser ist (low) soll die  erste
Led 2 mal blinken.
wenn ich taster 2 drücke soll die zweite led 5 mal blinken usw....

Wenn ich jetzt ein beispiel sehen würde könnte ich mir das viel
leichter vorstellen.

Danke bis bald
Gruß Rainer

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

Bewertung
0 lesenswert
nicht lesenswert
Hallo
In Bascom AVR sieht das so aus.
Siehe Dateianhang


mfg:ThomasB

Autor: AVR Neuling (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thomas

Danke habe mich gerade damit beschäftigt und durch Deine Hilfe ist mir
jetzt einiges klar geworden.
Vielen Dank
Werde Jetzt gleich mal ein bischen probieren.

Gruß und Dank
Rainer

Autor: Kainz Albert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Super Forum
Bin auch gerade am anfang mit dem AVR aber in C
kann mir vieleicht einer ein listing für C einstellen.
Vieleicht finde ich dann auch den richtigen weg.

Danke
Albert

Autor: Christoph (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo AVR ler
bin nun auch noch am basteln mit led und so und wollte noch einen
schritt weiter gehen. Ich arbeite unter Bascom Avr und habe mir auch
die schaltung mit dem 2313 und einem 8515 aufgebaut.
eine led soll leuchten wenn ich taster 1 drücke und soll erst wieder
ausgehen wenn ich zwei mal taster 2 betätige.
Leider geht sie bei mir nicht mehr aus.

Bitte auch um Hilfe
Christoph

Autor: Frank Linde (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Christoph,

dann zeig' uns doch mal Deinen Sourcecode.

Gruß, Frank

Autor: Christoph (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Frank hier mein Listing.
lach mich bitte nicht gleich aus aber aller anfang ist schwer.


Gruß
Christoph


$sim
$regfile = "2313def.dat"
$crystal = 4000000
Dim A As Byte
Ddrb = 255 : Portb = 255
Do
Debounce Pind.0 , 1 , Led1 , Sub
'------------------------------------
Led1:
For A = 1
      Portb.0 = 1
      Wait Port PIND.0 = 2
 Then Portb.0 = 0

Return
Loop

Autor: Christoph (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich nochmal Christoph
hier ist mein letzter versuch, habe ja schon bestimmt 30 verschiedene
wege versucht.


$sim
$regfile = "2313def.dat"
$crystal = 4000000
Dim A As Byte
Ddrb = 255 : Portb = 255
Do
Debounce Pind.0 , 1 , Led1 , Sub
Debounce Pind.1 , 1 , Led2 , Sub
'------------------------------------
Led1:
Portb.0 = 1
Return
Next
'------------------------------------
Led2:

Portb.0 = 0 if led2 = 2
Next
Return

Autor: ThomasB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute:
Der Befehl "$SIM" könnt ihr weglassen,ist nur zum simulieren da.
ddrb=255:portb=255
dim a as byte
do
    Debounce pind.0,1,led1,sub
    ...
    ...
    ...
loop =fehlt im Quellcode
led1:
for a= 1 to 2           rem Lässt Led0 2 mal blinken
   portb.0 = 0
   waitms 60
   portb.0 =1
   waitms 60
next
ddrb=255:portb=255 rem Schaltet alle LED´s wieder aus
return  rem und zurück zur Tastaturabfrage.

mfg ThomasB

Autor: Christoph (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Danke erstmal.

Aber wie kann ich dann folgende aufgabe realisieren ??


Wenn ich taster 1 drücke (pind.0) soll die led leuchten (portb.0) und
soll erst wieder ausgehen wenn ich zwei mal taster 2 (pind.0)
betätige.


Mein kopf raucht schon (ich glaube das lerne ich nie)
gibt es irgendwo eine list für die befehle und deren bedeutung ??

Danke Euer lernwilliger Christoph

Autor: Christoph (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry Jetzt ist es korrekt habe oben für taster zwei falschen port
angegeben gehabt.
Wow ich wede immer besser.


Hallo Danke erstmal.

Aber wie kann ich dann folgende aufgabe realisieren ??


Wenn ich taster 1 drücke (pind.0) soll die led leuchten (portb.0) und
soll erst wieder ausgehen wenn ich zwei mal taster 2 (pind.1)
betätige.


Mein kopf raucht schon (ich glaube das lerne ich nie)
gibt es irgendwo eine list für die befehle und deren bedeutung ??

Danke Euer lernwilliger Christoph

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

Bewertung
0 lesenswert
nicht lesenswert
Hier ein Quellcode ,wie man es machen könnte.
Habe Code in den 2313 gepummt,funktioniert einwandfrei.

MfG ThomasB

Autor: Christoph (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thomas
Danke werde mir morgen mal alle befehle und deren zusammenhang genau
ansehen damit ich den ablauf verstehen  kann.

Gruß
Christoph

Autor: Rino (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Avr `Freaks
Hay ThomasB habe mich auch schon an dem einsteiger kurs eingegliedert.
Hätte aber noch eine Frage zur letzten  an2aus.bas .
Soweit bin ich mit hilfe meines buches auch gekommen,
aber jetzt wenn ich noch einen Timer miteinbauen will verlässt mich
mein schlaues buch !

Also alles wie bei an2aus.bas aber wenn nicht inerhalb 10 sec.  taster
2 gedrückt wird soll die led von selber aus gehen.

Geht das überhaupt ?? das man in die laufende Tastenabfrage noch einen
Timer miteinbaut ??
Währe interesannt wie das geht.

Danke und immer weiter so .

P.S.
Habe hier im Forum schon mehr gelernt wie mit dem Bascom AVR Buch.

Gruß aus Norddeutschland
Rino

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Rino,

für die Erzeugung von Wartezeiten ohne CPU-Zeitverschwendung ist ein
grundsätzlich anderes Herangehen an die Programmierung notwendig.

Ich habe hier mal ein fertiges Programm mit Beschreibung reingestellt:

http://www.mikrocontroller.net/forum/read-4-49709.html


Leider kann ich kein Basic, sondern nur C und Assembler. Das Beispiel
wurde deshalb mit dem kostenlosen WINAVR übersetzt.


Peter

Autor: Rino (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Peter
Danke gut gemeint aber Assembler und C kann ich überhaupt noch nicht.

Bräuchte Hilfe Listing in Basic.

Leute helft mir !

Gruß Rino

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ne, ohne C-Kenntnisse brauchst Du Dir das garnicht erst anzusehen.

So ein Scheduler ist schon ne feine Sache, aber ich glaube nicht, daß
es etwas ähnliches schon fertig für Bascom gibt.


Vielleicht, daß der Bascom-Entwickler sowas noch dazuentwickelt.

Aber von C nach Bascom umzuschreiben sollte auch schwer werden, da
Bascom keine Strukturen und Funktionspointer unterstützt.
In C siehts ja schon nicht so einfach aus und ich habe auch lange dran
gesessen.


Peter

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.