Frage an Atmlel Profis

Gast #50638
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
#50640
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
Gast #50641
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
Gast #50643
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
Gast #50645
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
Gast #50647
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
Gast #50648
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
Gast #50649
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
Gast #50650
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
Gast #50651
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
Gast #50654
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
#50655
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
#50657
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

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