www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Knight Rider!


Autor: Jan H. (janiiix3)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

kann mir jemand von euch ein Programm für ein Knight Rider schreiben?

Inkl. Verwischung?

Ich habe einen Atmega8

Autor: Wegstaben Verbuchsler (wegstabenverbuchsler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sind die Hausaufgaben so schwer?

Autor: Master Snowman (snowman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hole gleich mal popkorn :-)

Autor: Düsendieb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Text Knight Rider bringt 58 Threads bei der Suchfunktion hier im 
Forum.

Wenn Du die alle gelesen hast melde Dich wieder

Axel

Autor: Jan H. (janiiix3)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, dass ist ja alles richtig, nur nicht wirklich das was ich brauche!

Autor: Ber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie wärs wenn du dann mal schreiben würdest WAS du brauchst?

"Ich habe ein Auto, brauche jemanden der mir eine Route berechnet..."

Autor: Jan H. (janiiix3)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
:D
Deine Beispiele sind ein wenig lächerlich, findest du nicht auch?
Ich glaube auf diesem niveau brauchen wir hier nicht zu arbeiten!!!

Also ich brauche ein Programm für ein Knight Rider Lauflicht,

ich möchte damit gerne 10 Led´s ansteuern und mit dem Verwischeffekt!

Autor: mhz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hast du eine schaltung ?
hast du schon angefangen oder wo genau brauchst du hilfe?

hast du keines der beiden was bist du bereit zu zahlen?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jan H. schrieb:
> :D
> Deine Beispiele sind ein wenig lächerlich, findest du nicht auch?

Eigentlich nicht :-)
(Siehe weiter unten)

> Also ich brauche ein Programm für ein Knight Rider Lauflicht,

Sagtest du schon

> ich möchte damit gerne 10 Led´s ansteuern und mit dem Verwischeffekt!

OK. Also 10 Led
Wieviele LED sollen denn jeweils links und rechts am Verwischeffekt Teil 
haben.

Und auch ja: welcher µC solls denn sein?


Welche Teile davon kannst du selbst machen?
Wobei hast du Schwierigkeiten?

Autor: gerd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man und wieder zu unfähig für Tante Gugel:

http://mitchsoft.de/Elektronik/Projects/KITT_Effek...

- gerd

Autor: Ber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"wir hier arbeiten" find ich gut...

von der Idee her:
10 Port Pins (oder multiplexen)
10 (Software)PWM's, musst halt schauen, schätze mal für das Knight Rider 
Licht reichen wahrscheinlich 4 bit Auflösung (grobe Schätzung, kommt ja 
auch auf die Leds an die du verwenden möchtest)
und dann einfach eine Tabelle von oben nach unten und retour 
"durchscrollen"

Autor: Jan H. (janiiix3)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Um ehrlich zu sein bin ich kompletter Neu Einsteiger!!!
Ich habe damit wirklich noch nichts gemacht, ich würde mich darum riesig 
freuen wenn mir eine das Programm schreiben könnte und ich das 
ersteinmal auf einer Lochrasterplatine aufbauen kann um es besser nach 
voll ziehen zu können!


Ich habe mir gedacht das immer 2 Led am Nachwischen sind, das die letzte 
nen bisschem dunkler ist als die andere?
Würde das gehen?

Autor: horst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ber schrieb:
> Wie wärs wenn du dann mal schreiben würdest WAS du brauchst?


Ist doch klar:
Ein Auto mit künstlicher Inteligenz, zweitklassigem Humor und 
kugelsicherer Karosserie.
Immer wenn das Auto redet sollen am Armaturenbrett Lichter flackern.
Wenn jemand in seine Uhr "komm her" flüstert kommt das Auto auch.

Das könnte ich auch gebrauchen. Also, wer schreibt uns das Programm?

Autor: Ber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Als Neueinsteiger:
Nimm dir dein Brett, häng eine Led an den µC und bring die zum blinken / 
dimmen.

Wenn du das hast wirst du bemerken, dass das Knight Rider Programm nur 
mehr ein Klacks ist und dabei lernst du viel viel mehr.

Nur so als Tip

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jan H. schrieb:
> Um ehrlich zu sein bin ich kompletter Neu Einsteiger!!!
> Ich habe damit wirklich noch nichts gemacht,

Dann fang dort an, wo alle anfangen.
Led ein / ausschalten
Led blinken lassen
etc. tec.

AVR-Tutorial
AVR-GCC-Tutorial

> ich würde mich darum riesig
> freuen wenn mir eine das Programm schreiben könnte und ich das
> ersteinmal auf einer Lochrasterplatine aufbauen kann um es besser nach
> voll ziehen zu können!

Du wirst das überhaupt nicht nachvollziehen können. Wenn mir mein 
Elktrokonzern ein Atomkraftwerk in den Garten stellt, kann ich auch 
nicht nachvollziehen wie es im Detail arbeitet. Egal wieviel Zeit ich da 
investiere.

Gelernt wird nicht, indem man vermeintlich komplexe Dinge vorgesetzt 
bekommt, sondern indem man selber bei den Grundlagen anfängt und sich 
hochhantelt.

Autor: gerd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jan H. schrieb:
> Ich habe damit wirklich noch nichts gemacht, ich würde mich darum riesig
> freuen wenn mir eine das Programm schreiben könnte und ich das
> ersteinmal auf einer Lochrasterplatine aufbauen kann um es besser nach
> voll ziehen zu können!

Schau dir den Link an, den ich weiter oben gepostet habe. Vermutlich 
wirst du damit schon glücklich!

- gerd

Autor: Jan H. (janiiix3)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie fange ich ein das Programm zu schreiben?
Kann mir einer mal ein bsp. Posten?

Mit einer LED die Blinkt und dann gleich zur 2 ten Rüberwechselt?
Wo bekomme ich die ganzen Befehle her?

Autor: shop (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kauf son teil fetrig und gut
http://www.youtube.com/watch?v=N17Y4VvpYpA
der hat auch nen egay shop

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jan H. schrieb:
> Wie fange ich ein das Programm zu schreiben?
> Kann mir einer mal ein bsp. Posten?
>
> Mit einer LED die Blinkt und dann gleich zur 2 ten Rüberwechselt?
> Wo bekomme ich die ganzen Befehle her?

AVR-Tutorial
AVR-GCC-Tutorial

Autor: Jan H. (janiiix3)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen dank für die Schnellen Antworten,

Wo fange ich an zu suchen? Ich weiß nicht was ich schreiben soll 
Register?
Das sagt mir immoment noch nicht wirklich viel,
kann mir nicht jemand mal wirklich richtig unter die arme greifen?

Autor: Ber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachdem dich das Tutorial nicht zu reizen scheint:

Ich würde vorschlagen du postest mal etwas von "deinem" Sourcecode 
(gurgl.com) und stellst Fragen die dir unklar sind, sonst wird das Ganze 
nicht viel bringen...

Autor: Elektro Lux (mathias_n)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welche Sprache?

C, ASM, Basic ???

Autor: Thomas Burkhart (escamoteur)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jan,

vielleicht erzählst Du uns erst mal, was Du übers programmieren weißt?

Kannst Du C?

Hast Du die beiden Tutorials komplett durchgelesen? Wenn ja, was 
verstehst Du nicht?

gruß
Tom

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jan H. schrieb:
> Vielen dank für die Schnellen Antworten,
>
> Wo fange ich an zu suchen?

Fang im ersten Kapitel an zu lesen.
Dann weißt du was du an Hardware brauchst und wie das grundsätzlich geht
Und dann nimmst du dir das nächste Kapitel vor. Nach diesem Kapitel 
kannst du schon mal gezielt LED ein / ausschalten

Und so bringt dich ein Kapitel nach dem anderen, deinem Ziel näher.

Und nein, für einen absoluten Anfänger ist ein Knight Rider Lauflicht 
mit Verwischeffekt kein Einsteigerprojekt. Selbst wenn man den 
Verwischeffekt weg lässt, ist es noch immer keines. Allerdings kann man 
darüber diskutieren, ob so ein Lauflicht (mit 8 LED, ohne Verwischung) 
als 3tes oder 4tes Projekt taugt.

> kann mir nicht jemand mal wirklich richtig unter die arme greifen?

Wir sind hier im Forum der strikten Auffassung, dass man einem 
Hungernden mehr hilft, wenn man ihm zum fischen bringt und nicht indem 
man ihm einen Fisch schenkt. Kann er fischen, dann ist er auch nächste 
Woche versorgt.

In diesem Sinne: Fang an zu lernen! Lass dich nicht von Rückschlägen 
entmutigen, die gehören genauso dazu wie die Erfolgserlebnisse. Wenn du 
konkrete Fragen hast, dann frag. Aber so Rundumschlagfragen ala "Kann 
mir wer die Welt erklären bzw. ein Lauflicht bauen", die sind hier nicht 
gerne gesehen.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jan H. schrieb:
> ich möchte damit gerne 10 Led´s ansteuern und mit dem Verwischeffekt!

Das ist kein Effekt, sondern das unvermeidbare Nachleuchten von normalen 
Glühbirnen.
Es gab damals noch keine hellen LEDs.


Peter

Autor: Jan H. (janiiix3)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
$regfile = "m8def.dat" 
'initialisierung (Atmega8)
$crystal = 3690000                                          'Frequenz
$baud = 9600                                                'Baudrate



Config Portb = Output
Config Portd = Output





Out Portb , 1
Out Pinb , 0
Out Pinb , 1

Set Portb.1









End                                                         'end program




Soweit bin ich schonmal gekommen

Autor: Ber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gut (oder auch nicht),
was ist jetzt unklar?

Autor: Jan H. (janiiix3)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die ganzen Codes wie ich sie anordne was die einzelnd bedeuten, wo 
kriege ich den befehl für das blinken her?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also BASCOM

Probier das mal aus:
$regfile = "m8def.dat"
'initialisierung (Atmega8)
$crystal = 3690000                                          'Frequenz

Config Portb = Output
Config Portd = Output

do
  Out Portb , 1
  wait 1
  Out Portb , 2
  wait 1
  Out Portb , 4
  wait 1
  Out Portb , 8
  wait 1
loop

End                                                         'end program


wenn ich dir jetzt noch sage, dass die binäre Darstellung der Zahlen, 
die an Port B ausgegeben werden so aussehen:

  Dezimal      Binär
 ----------------------
    0         00000000
    1         00000001
    2         00000010
    3         00000011
    4         00000100
    5         00000101
    6         00000110
    7         00000111
    8         00001000
    ....

welche Schlüsse ziehst du dann daraus, wie du es schaffst eine LED nach 
der anderen einzuschalten?

Ich hab nacheinander am Port ausgegeben

    1            also auf den 8 Pins    00000001
    2                                   00000010
    4                                   00000100
    8                                   00001000

(vergiss fürs erste den Wischeffekt. Der ist noch zu schwer für dich. 
Dazu musst du 10 LED unabhängig voneinander dimmen können. Und davon 
bist du noch mindestens 20 Lernstunden entfernt)

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jan H. schrieb:
> Die ganzen Codes wie ich sie anordne was die einzelnd bedeuten,

steht in der Hilfe
Und: Es gibt auch BASCOM Tutorien. Nicht hier bei uns auf µc.net. Aber 
mit Google sind die auffindbar.

> wo
> kriege ich den befehl für das blinken her?

Die gibt es nicht.
Das musst du schon selber machen.

Es mag dich überraschen, aber auch wenn das im Kino immer so rüberkommt: 
Ein Schachprogramm sieht NICHT so aus:
play ("chess");

Autor: Ber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lass mich raten:
Morgen ist Abgabetermin und dein Lehrer ist sehr böse auf dich...
Ist mir echt schleierhaft wie man so beratungsresistent sein kann.

Tutorial!!!!

Ich wünsch dir viel Glück

Autor: Jan H. (janiiix3)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein das ist keine Aufgabe für meinen Lehrer :-P

Okay das bringt mich schonmal weiter !

was genau macht der befehl

"do"?
  Out Portb , 1
wenn ich diesen befehl schreibe, ist er automatisch auf High gesetzt ?

Autor: MichaelKnight (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
lern erstmal lesen.
alles was du brauchst wurde schon geschrieben und die links dazu 
gepostet.

sowas von ignorantes erlebt man selbst hier nicht jeden tag...

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jan H. schrieb:
> Nein das ist keine Aufgabe für meinen Lehrer :-P
>
> Okay das bringt mich schonmal weiter !
>
> was genau macht der befehl
>
> "do"?
>   Out Portb , 1
> wenn ich diesen befehl schreibe, ist er automatisch auf High gesetzt ?

Schau in der Hilfe nach und/oder such dir mit google ein Online Bascom 
Tutorial

Du brauchst Unterlagen. Ideal wäre ein Buch, aber es geht auch mit 
Online Tutorien. Was aber nicht geht: Zu glauben man könne programmieren 
lernen, indem man sich in einem Forum durchfragt.

Autor: Frank Bär (f-baer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Solange du dich nicht mit den Grundlagen beschäftigst, ist das doch nur 
Trollen auf etwas gehobenem Niveau.
Arbeite dich in die gewählte Programmiersprache ein, beschäftige dich 
mit dem AVR-Tutorial und versuche zu abstrahieren, was du eigentlich 
erreichen willst.
Mach dir einen Plan, welche Schritte nötig sind, um eine LED zum blinken 
zu bringen, und versuche den dann in ein Programm umzusetzen.
Wenn du dich nicht selbst etwas mit dem Thema beschäftigst, dann macht 
das hier keinen Sinn.
Fertigen Code googlen fällt übrigens nicht unter "sich mit etwas 
beschäftigen".

Autor: weranders (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mist, Ich brauch mehr Popkorn

Autor: shop (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
beratungsresistent , lernresistent ...
kauf son teil einfach bei egay und gut is ...
wenn man sich mit soetwas befassen will muss man starke eigeninitiative 
zeigen .. und das tust du hier nicht gerade


... trollst du noch oder kaufst du schon ???

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Übrigens, wie ich gerade selber aus der Online-BASCOM Hilfe erfahren 
habe, ist das OUT gar nicht notwendig. Man kann das auch so schreiben
$regfile = "m8def.dat"
'initialisierung (Atmega8)
$crystal = 3690000                                          'Frequenz

Config Portb = Output
Config Portd = Output

do
  PORTB = 1
  wait 1
  PORTB = 2
  wait 1
  PORTB = 4
  wait 1
  PORTB = 8
  wait 1
loop

End                                                         'end program

http://www.avrhelp.mcselec.com/

Autor: Jan H. (janiiix3)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn das deine strategie ist hier was zu verkaufen, bist du ein 
schlechter verkäufer ;)

also ich sitze schon die ganze zeit dabei mir das durch zu lesen nur 
manche leute verstehen das nicht so schnell ;)

kann das ungefähr so aussehen?


$regfile = "m8def.dat" 
'initialisierung (Atmega8)
$crystal = 3690000                                          'Frequenz

Config Portb = Output
Config Portd = Output

do
  Out Portb , 1
  wait 1
  Out Portb , 2
  wait 1
  Out Portb , 4
  wait 1
  Out Portb , 8
  Wait 1

  Out Portb , 8
  wait 1
  Out Portb , 4
  wait 1
  Out Portb , 2
  wait 1
  Out Portb , 1
  Wait 1

Loop 
'Endlosschleife

End                                                         'end program

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jan H. schrieb:

> wenn das deine strategie ist hier was zu verkaufen, bist du ein
> schlechter verkäufer ;)

Niemand will hier irgendwas verkaufen.
Wir haben nur etwas gegen Leute, die notorisch 'wollen' mit 'können' 
verwechseln.

"Ich will xyz bauen"  ist nicht dasselbe wie
"Ich kann xyz bauen"

Und nur weil man etwas will, heißt das noch lange nicht, das man es auch 
kann.


> kann das ungefähr so aussehen?

Es gibt eine einfache Möglichkeit das rauszufinden:
Programmier es in deinen µC und sieh nach was es tut

Autor: Jan H. (janiiix3)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe es reingebrannt aber es tut sich nichts :(

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jan H. schrieb:
> Ich habe es reingebrannt aber es tut sich nichts :(

Hast du schon irgendein anderes Programm in deinen µC gebrannt. 
Vielleicht ein Demo-Programm oder sowas. (*)

Wie sieht deine Schaltung aus? Welches Board hast du?
Sitzen am Port B überhaupt ein paar LED?

(*) Es geht nicht darum, was du reingebrannt hast, sondern ob der 
Brennvorgang grundsätzlich funktioniert. Sprich: Hast du etwas 
(irgendwas) in deinen µC gebrannt und das hat dann funktioniert?

Autor: Jan H. (janiiix3)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja ich habe da schonmal ein Test Programm reingebrannt das ging auch !

Ja ich habe ja ein Programmierboard bei mir zu liegen, ich habe von 
meinem PortB Pin 1 ein Kupfer draht zu meiner LED gelegt

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vorwiderstand auch dabei?
LED richtig gepolt?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jan H. schrieb:
> Ja ich habe da schonmal ein Test Programm reingebrannt das ging auch !
>
> Ja ich habe ja ein Programmierboard bei mir zu liegen, ich habe von
> meinem PortB Pin 1 ein Kupfer draht zu meiner LED gelegt

Mit 1 LED wirds aber schwer ein Lauflicht zu machen :-)

Wie genau hast du die LED angeschlossen?
Wie sieht deine Hardware aus?


Wenn deine LED richtig rum angeschlossen ist, zumindest blinken müsste 
sie irgendwann einmal.

Was ist das für ein Board? Hast du das selbst gebaut?

Autor: Jan H. (janiiix3)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe ein myAVR USB Programmer mkII

! Aber es müsste doch zumindest irgendwann mal die 1 LED Blinken!!!

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jan H. schrieb:
> Ich habe ein myAVR USB Programmer mkII

Das Teil hier?
Das ist nur der Programmer.

http://shop.myavr.de/index.php?404;http://www.myav...

Der führt selber keine Programme aus, sondern brennt sie in den µC

Hast du da ein MySmart Board drann hängen?

> ! Aber es müsste doch zumindest irgendwann mal die 1 LED Blinken!!!

Nur wenn
* das Programm sauber übertragen wurde
* der Prozessor auch läuft
* die LED richtig rum angeschlossen wurde.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Jan H. (janiiix3)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://shop.myavr.de/Systemboards/myAVR%20Board%20...


Diesen hier habe ich!

Kann mit diesem Programm überhaupt meine LED Blinken?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jan H. schrieb:
> Ich habe ein myAVR USB Programmer mkII
>
> ! Aber es müsste doch zumindest irgendwann mal die 1 LED Blinken!!!

Dann lassen wir doch zu Kontrollzwecken ganz einfach nur diesen einen 
Portpin wackeln
$regfile = "m8def.dat"
'initialisierung (Atmega8)
$crystal = 3690000                                          'Frequenz

Config Portb = Output

do
  PORTB = 1
  wait 1
  PORTB = 0
  wait 1
loop

End                                 

Autor: Tim T. (tim_taylor)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bitte den Karl Heinz nicht verschleissen, du bist anscheinend ohnehin 
ein hoffnungsloser Fall, für andere jedoch wäre es gut wenn KH seine 
Motivation nicht verliert...

Autor: Jan H. (janiiix3)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh okay jetzt gehts!

Autor: nicht "Gast" (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
warum willst du das überhaupt umsetzen? Wenn du keine Lust hast es zu 
programmieren dann kaufs dir oder lass es sein.
Wenns eine Aufgabe vom Chef, Lehrer oder wem auch immer ist, dann hast 
du offenbar den falschen Berufsweg gewählt...

Autor: Vlad Tepesch (vlad_tepesch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
merkt ihr nicht, dass euch hier einer verarscht?

Autor: Jan H. (janiiix3)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein so ist das nicht !

Ich brauche erstmal ein Paar Ansätze, wenn ich das so sehe das dass auch 
Funktioniert, dann lerne ich das besser!

Jetzt habe ich schon was gelernt

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jan H. schrieb:
> Nein so ist das nicht !
>
> Ich brauche erstmal ein Paar Ansätze, wenn ich das so sehe das dass auch
> Funktioniert, dann lerne ich das besser!

OK.
Siehs als Vorschuss. Irgendwo muss man nun mal anfangen und am Anfang 
steht man da wie der Ochs vorm Tor, wenn nichts geht.

Trotzdem brauchst du

* die Online BASCOM Hilfe
* ein BASCOM Tutorial

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jan H. schrieb:
> kann mir jemand von euch ein Programm für ein Knight Rider schreiben?
> Inkl. Verwischung?
Ich habe sowas... :-)

> Ich habe einen Atmega8
Ich habe aber ein FPGA und programmiere in VHDL. Hilft dir das? ;-)
http://www.lothar-miller.de/s9y/archives/61-Lauflicht.html

Autor: Tim T. (tim_taylor)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stimmt in VHDL hab ich das hier auch mal gebastelt, war einer der ersten 
Gehversuche:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity Lauflicht is Port
( 
 clk : in  STD_LOGIC;
 leds : out  STD_LOGIC_VECTOR (7 downto 0)
);
end Lauflicht;

architecture Behavioral of Lauflicht is
 constant fclk    : integer := 50_000_000;
 signal nextled   : integer range 0 to fclk := 0;
 signal idx       : integer range 0 to 13 := 0;
 signal pwmcnt    : integer range 0 to 15 := 0;
 signal ledbright : std_logic_vector( 7 downto 0);
 signal leddimmed : std_logic_vector( 7 downto 0);
 signal ledglow   : std_logic_vector( 7 downto 0);
begin

process
 type Rom is array (0 to 13) of std_logic_vector(7 downto 0);
 constant ledarray : Rom := ("10000000","01000000","00100000","00010000","00001000","00000100","00000010","00000001","00000010","00000100","00001000","00010000","00100000","01000000");
 begin
  wait until rising_edge(clk);
  if (nextled < fclk/11) then nextled <= nextled + 1; -- 11 Hz
  else
   nextled <= 0;
   if (idx < 13) then idx <= idx + 1;
  else idx <= 0;
  end if;
   ledglow <= leddimmed;
   leddimmed <= ledbright;
   ledbright <= ledarray(idx);
  end if;
  if (pwmcnt < 5) then pwmcnt <= pwmcnt + 1;
  else pwmcnt <= 0;
  end if;
 end process;

leds <= ledbright or leddimmed or ledglow when pwmcnt < 2 else ledbright or leddimmed when pwmcnt < 4 else ledbright;

end Behavioral;

EDIT: Jetzt weis ich auch wieder wo ich abgeschrieben hab^^

Autor: Jan H. (janiiix3)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
$regfile = "m8def.dat" 
'initialisierung (Atmega8)
$crystal = 3690000                                          'Frequenz

Config Portb = Output

do
  Portb , 2 = 1
  Wait 4
  Portb , 2 = 0
  Wait 2
loop

End


kann ich auch einzelne Bits damit ansteuern? Andere Pins?

Autor: Düsendieb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jan H. schrieb:
> do
>
>   Portb , 2 = 1
>
>   Wait 4
>
>   Portb , 2 = 0
>
>   Wait 2
>
> loop

Was hält Dich ab zu schreiben:

Portb , 2 = 1
Portb , 3 = 0
Portb , 4 = 1
Wait 4
Portb , 2 = 0
Portb , 3 = 1
Portb , 4 = 0

Autor: Tim T. (tim_taylor)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jan H. schrieb:
> kann ich auch einzelne Bits damit ansteuern? Andere Pins?

Äquivalent zum C Beispiel hier im Tutorial: 
http://www.mikrocontroller.net/articles/AVR-GCC-Tu...

EDIT: Hoppala, daneben geholzt in BASCOM geht das ja direkt...

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Düsendieb schrieb:
> Jan H. schrieb:
>> do
>>
>>   Portb , 2 = 1
>>
>>   Wait 4
>>
>>   Portb , 2 = 0
>>
>>   Wait 2
>>
>> loop
>
> Was hält Dich ab zu schreiben:
>
> Portb , 2 = 1
> Portb , 3 = 0
> Portb , 4 = 1
> Wait 4
> Portb , 2 = 0
> Portb , 3 = 1
> Portb , 4 = 0

Ich denke das macht man in BASCOM anders. Da war doch irgendwas, das man 
sich in der Config Section für die Einzelpins Namen vergibt oder so. 
Genaueres weiß ich aber auch nicht.

Aber im Zweifelsfall, wenn man das binäre System durchschaut hat, ist es 
auch nicht schwer, sich die entsprechenden Zahlen zusammenzurechnen :-)

Auf jeden Fall aber: Das steht alles in einem Tutorial. Und der TO soll 
sich jetzt endlich eines im Web suchen!

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das hier ist, denk ich, nicht so schlecht.

http://www.rowalt.de/mc/

ist zwar eine etwas andere Hardware, aber so schlimm ist das nicht. Da 
muss man dann wenigstens mitdenken, wenn man die Programme aus dem 
Tutorial auf der eigenen Hardware zum laufen bringen will und nicht 
einfach nur stumpfsinnig abschreiben.

(Es geht los bei: "Einführung 3")

Autor: Master Snowman (snowman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Und der TO soll sich jetzt endlich eines im Web suchen!
genau! denn mein popkorn ist jetzt auch alle.

Autor: Alex H. (hoal) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Master Snowman schrieb:
> hole gleich mal popkorn :-)

Das hast mich wirklich zum Schmunzeln gebracht :)

@Karl Heinz:
Ich verneige mich vor deiner Geduld! Wie oft du hier verschiedensten 
Leuten "unter die Arme greifst" finde ich großartig.

Autor: janni (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zugegeben Offtopic, aber ist in dem Link von Lothar Miller echt alles in 
Ordnung?
Der Takt enable für nextled verwendet für die range 5000/3 bei 3 Hz. 
Sollten das nicht fclk, also 50000/3 sein?
Da die 5000 sich öfter im Code finden bin ich allerdings recht 
verunsichert.

Autor: Tim T. (tim_taylor)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe rein interessehalber mal nachgesehen und ein entsprechendes 
Lauflicht in meinem Bastelordner gefunden, allerdings gibts keine 
Garantie das es auch funktioniert.
#include <avr/io.h>
#include <avr/interrupt.h>
#include <inttypes.h>

#define F_CPU    8000000UL
#define TOP      0b0000001000000000 // 2^9 (10. Bit gesetzt)
#define BOTTOM   0b0000000000000001 // 2^0 (1. Bit gesetzt)
#define FREQUENZ 1                  // Wechselfrequenz in Hz

void ausgabe( uint16_t schattenregister ) {
 
 PORTB = schattenregister & 0xFF;
 PORTC = ( schattenregister >> 8 ) & 0x03;
};

int main( void ) {
 
 DDRB = 0xFF; // Alle Pins von PortB als Ausgang
 DDRC = 0x03; // Untere 2 Pins von PortC als Ausgang
 
 TCCR0 = ( 1 << CS01 ) | ( 1 << CS00 ); // 64er Vorteiler
 TIMSK |= ( 1 << TOIE0 );               // Timer Overflow Interrupt Enable
 TCNT0 = 0;                             // Timer startet mit 0

 sei();

 while ( 1 );
  
 return 0;
}

ISR( TIMER0_OVF_vect ) { // 488 Hz ISR-Frequenz

 static uint8_t durchlauf = 1;
 static uint8_t upcounting = 1;
 static uint16_t zaehler = 0;

 static uint16_t s1 = 0b0000000000000001;
 static uint16_t s2 = 0;
 static uint16_t s3 = 0;
   
 switch ( durchlauf++ ) {
  case 1 : ausgabe( s1 | s2 | s3 ); break; //  25%
  case 2 : ausgabe( s1 | s2 ); break;      //  50%
  case 3 : ausgabe( s1 ); break;           //  75% 
  case 4 : durchlauf = 1; break;           // 100%
  default: break;
 };

 if ( ++zaehler == ( F_CPU / ( 64 * 256UL * FREQUENZ ) ) ) {
  zaehler = 0;
  if ( upcounting == 1 ) {
   if ( s1 < TOP ) {
    s3 = s2;
    s2 = s1;
    s1 <<= 1;
   }
   else upcounting = 0;
  };
  if ( upcounting == 0 ) {
   if ( s1 > BOTTOM ) {
    s3 = s2;
    s2 = s1;
    s1 >>= 1;
   }
   else upcounting = 1; 
  };
 };
}

Wenns dem OP hilft fein, wenn nicht auch ok.

Autor: Michael Roek (mexman) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jan H. schrieb:
> also ich sitze schon die ganze zeit dabei mir das durch zu lesen nur
> manche leute verstehen das nicht so schnell ;)

Hallo Jan,


bitte an die Regeln hier halten:



Wichtige Regeln - erst lesen, dann posten!

    * Groß- und Kleinschreibung verwenden




Gruss



Michael

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.