Forum: Mikrocontroller und Digitale Elektronik Knight Rider!


von Jan H. (janiiix3)


Lesenswert?

Hallo,

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

Inkl. Verwischung?

Ich habe einen Atmega8

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

sind die Hausaufgaben so schwer?

von Master S. (snowman)


Lesenswert?

hole gleich mal popkorn :-)

von Düsendieb (Gast)


Lesenswert?

Der Text Knight Rider bringt 58 Threads bei der Suchfunktion hier im 
Forum.

Wenn Du die alle gelesen hast melde Dich wieder

Axel

von Jan H. (janiiix3)


Lesenswert?

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

von Ber (Gast)


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..."

von Jan H. (janiiix3)


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!

von mhz (Gast)


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?

von Karl H. (kbuchegg)


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?

von gerd (Gast)


Lesenswert?

Man und wieder zu unfähig für Tante Gugel:

http://mitchsoft.de/Elektronik/Projects/KITT_Effekt/Start.html

- gerd

von Ber (Gast)


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"

von Jan H. (janiiix3)


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?

von horst (Gast)


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?

von Ber (Gast)


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

von Karl H. (kbuchegg)


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.

von gerd (Gast)


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

von Jan H. (janiiix3)


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?

von shop (Gast)


Lesenswert?

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

von Karl H. (kbuchegg)


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

von Jan H. (janiiix3)


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?

von Ber (Gast)


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...

von Elektro L. (mathias_n)


Lesenswert?

Welche Sprache?

C, ASM, Basic ???

von Thomas B. (escamoteur)


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

von Karl H. (kbuchegg)


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.

von Peter D. (peda)


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

von Jan H. (janiiix3)


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

von Ber (Gast)


Lesenswert?

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

von Jan H. (janiiix3)


Lesenswert?

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

von Karl H. (kbuchegg)


Lesenswert?

Also BASCOM

Probier das mal aus:
1
$regfile = "m8def.dat"
2
'initialisierung (Atmega8)
3
$crystal = 3690000                                          'Frequenz
4
5
Config Portb = Output
6
Config Portd = Output
7
8
do
9
  Out Portb , 1
10
  wait 1
11
  Out Portb , 2
12
  wait 1
13
  Out Portb , 4
14
  wait 1
15
  Out Portb , 8
16
  wait 1
17
loop
18
19
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)

von Karl H. (kbuchegg)


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:
1
play ("chess");

von Ber (Gast)


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

von Jan H. (janiiix3)


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 ?

von MichaelKnight (Gast)


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...

von Karl H. (kbuchegg)


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.

von Frank B. (f-baer)


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".

von weranders (Gast)


Lesenswert?

Mist, Ich brauch mehr Popkorn

von shop (Gast)


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 ???

von Karl H. (kbuchegg)


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
1
$regfile = "m8def.dat"
2
'initialisierung (Atmega8)
3
$crystal = 3690000                                          'Frequenz
4
5
Config Portb = Output
6
Config Portd = Output
7
8
do
9
  PORTB = 1
10
  wait 1
11
  PORTB = 2
12
  wait 1
13
  PORTB = 4
14
  wait 1
15
  PORTB = 8
16
  wait 1
17
loop
18
19
End                                                         'end program

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

von Jan H. (janiiix3)


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

von Karl H. (kbuchegg)


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

von Jan H. (janiiix3)


Lesenswert?

Ich habe es reingebrannt aber es tut sich nichts :(

von Karl H. (kbuchegg)


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?

von Jan H. (janiiix3)


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

von Chris (Gast)


Lesenswert?

Vorwiderstand auch dabei?
LED richtig gepolt?

von Karl H. (kbuchegg)


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?

von Jan H. (janiiix3)


Lesenswert?

Ich habe ein myAVR USB Programmer mkII

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

von Karl H. (kbuchegg)


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.myavr.de:80/shop/article.php?artDataID=36

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.

von Karl H. (kbuchegg)


Lesenswert?


von Jan H. (janiiix3)


Lesenswert?

http://shop.myavr.de/Systemboards/myAVR%20Board%20MK2%20USB,%20best%C3%BCckt.htm?sp=article.sp.php&artID=40


Diesen hier habe ich!

Kann mit diesem Programm überhaupt meine LED Blinken?

von Karl H. (kbuchegg)


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
1
$regfile = "m8def.dat"
2
'initialisierung (Atmega8)
3
$crystal = 3690000                                          'Frequenz
4
5
Config Portb = Output
6
7
do
8
  PORTB = 1
9
  wait 1
10
  PORTB = 0
11
  wait 1
12
loop
13
14
End

von Tim T. (tim_taylor) Benutzerseite


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...

von Jan H. (janiiix3)


Lesenswert?

Oh okay jetzt gehts!

von nicht "Gast" (Gast)


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...

von Vlad T. (vlad_tepesch)


Lesenswert?

merkt ihr nicht, dass euch hier einer verarscht?

von Jan H. (janiiix3)


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

von Karl H. (kbuchegg)


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

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Stimmt in VHDL hab ich das hier auch mal gebastelt, war einer der ersten 
Gehversuche:
1
library IEEE;
2
use IEEE.STD_LOGIC_1164.ALL;
3
4
entity Lauflicht is Port
5
( 
6
 clk : in  STD_LOGIC;
7
 leds : out  STD_LOGIC_VECTOR (7 downto 0)
8
);
9
end Lauflicht;
10
11
architecture Behavioral of Lauflicht is
12
 constant fclk    : integer := 50_000_000;
13
 signal nextled   : integer range 0 to fclk := 0;
14
 signal idx       : integer range 0 to 13 := 0;
15
 signal pwmcnt    : integer range 0 to 15 := 0;
16
 signal ledbright : std_logic_vector( 7 downto 0);
17
 signal leddimmed : std_logic_vector( 7 downto 0);
18
 signal ledglow   : std_logic_vector( 7 downto 0);
19
begin
20
21
process
22
 type Rom is array (0 to 13) of std_logic_vector(7 downto 0);
23
 constant ledarray : Rom := ("10000000","01000000","00100000","00010000","00001000","00000100","00000010","00000001","00000010","00000100","00001000","00010000","00100000","01000000");
24
 begin
25
  wait until rising_edge(clk);
26
  if (nextled < fclk/11) then nextled <= nextled + 1; -- 11 Hz
27
  else
28
   nextled <= 0;
29
   if (idx < 13) then idx <= idx + 1;
30
  else idx <= 0;
31
  end if;
32
   ledglow <= leddimmed;
33
   leddimmed <= ledbright;
34
   ledbright <= ledarray(idx);
35
  end if;
36
  if (pwmcnt < 5) then pwmcnt <= pwmcnt + 1;
37
  else pwmcnt <= 0;
38
  end if;
39
 end process;
40
41
leds <= ledbright or leddimmed or ledglow when pwmcnt < 2 else ledbright or leddimmed when pwmcnt < 4 else ledbright;
42
43
end Behavioral;

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

von Jan H. (janiiix3)


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?

von Düsendieb (Gast)


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

von Tim T. (tim_taylor) Benutzerseite


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-Tutorial#Ausg.C3.A4nge

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

von Karl H. (kbuchegg)


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!

von Karl H. (kbuchegg)


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")

von Master S. (snowman)


Lesenswert?

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

von Alex H. (hoal) Benutzerseite


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.

von janni (Gast)


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.

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Habe rein interessehalber mal nachgesehen und ein entsprechendes 
Lauflicht in meinem Bastelordner gefunden, allerdings gibts keine 
Garantie das es auch funktioniert.
1
#include <avr/io.h>
2
#include <avr/interrupt.h>
3
#include <inttypes.h>
4
5
#define F_CPU    8000000UL
6
#define TOP      0b0000001000000000 // 2^9 (10. Bit gesetzt)
7
#define BOTTOM   0b0000000000000001 // 2^0 (1. Bit gesetzt)
8
#define FREQUENZ 1                  // Wechselfrequenz in Hz
9
10
void ausgabe( uint16_t schattenregister ) {
11
 
12
 PORTB = schattenregister & 0xFF;
13
 PORTC = ( schattenregister >> 8 ) & 0x03;
14
};
15
16
int main( void ) {
17
 
18
 DDRB = 0xFF; // Alle Pins von PortB als Ausgang
19
 DDRC = 0x03; // Untere 2 Pins von PortC als Ausgang
20
 
21
 TCCR0 = ( 1 << CS01 ) | ( 1 << CS00 ); // 64er Vorteiler
22
 TIMSK |= ( 1 << TOIE0 );               // Timer Overflow Interrupt Enable
23
 TCNT0 = 0;                             // Timer startet mit 0
24
25
 sei();
26
27
 while ( 1 );
28
  
29
 return 0;
30
}
31
32
ISR( TIMER0_OVF_vect ) { // 488 Hz ISR-Frequenz
33
34
 static uint8_t durchlauf = 1;
35
 static uint8_t upcounting = 1;
36
 static uint16_t zaehler = 0;
37
38
 static uint16_t s1 = 0b0000000000000001;
39
 static uint16_t s2 = 0;
40
 static uint16_t s3 = 0;
41
   
42
 switch ( durchlauf++ ) {
43
  case 1 : ausgabe( s1 | s2 | s3 ); break; //  25%
44
  case 2 : ausgabe( s1 | s2 ); break;      //  50%
45
  case 3 : ausgabe( s1 ); break;           //  75% 
46
  case 4 : durchlauf = 1; break;           // 100%
47
  default: break;
48
 };
49
50
 if ( ++zaehler == ( F_CPU / ( 64 * 256UL * FREQUENZ ) ) ) {
51
  zaehler = 0;
52
  if ( upcounting == 1 ) {
53
   if ( s1 < TOP ) {
54
    s3 = s2;
55
    s2 = s1;
56
    s1 <<= 1;
57
   }
58
   else upcounting = 0;
59
  };
60
  if ( upcounting == 0 ) {
61
   if ( s1 > BOTTOM ) {
62
    s3 = s2;
63
    s2 = s1;
64
    s1 >>= 1;
65
   }
66
   else upcounting = 1; 
67
  };
68
 };
69
}

Wenns dem OP hilft fein, wenn nicht auch ok.

von Michael R. (mexman) Benutzerseite


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

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.