Hallo,
ihr kennt doch diese H0 1:87 Dinger? Ich hab mir ein Modellauto in 1:87
umgebaut so das jetzt vorne zwei Weis leuchtende SMD LEDs 0603, zwei
Gelbe 0603 und hinten zwei Rote 0603, zwei Gelbe 0603 eingebaut sind.
Meine Idee ist das ich die jeweils vorn und hinteren LEDs ( Gelb ) so
ansteuern will das sie entweder rechts Blinken oder Links Blinken.
Ebenso auch Warnblinklicht alle Vier Blinken.
Ich wollte das so machen das wenn ich auf den Taster drücke, 3 sec warte
zeit - die rechen ( vorn und hinten ) LEDs Gelb blinken oder Taster 2
Links blinken. Genau so auch mit Warnblinklicht: Taster drücken und dann
3 sec warten - Blinken. PS: nach den 3 sec Warten soll es für ca: 10 sec
blinken und dann wieder aus gehen.
Meine frage: kann ich das auch ohne IC Steuerung basteln oder geht das
am besten nur mit IC Ansteuerung.
Mein Problem ist das ich in C - C++ oder anderem, noch keine Erfahrung
habe zu Programmieren.
Ich hoffe ich hab alles und deutlich erklärt.
Gruß
Dominik
PS: ich habe noch gar keine Ahnung wie ich überhaupt eine Schaltplan
zusammen bekomme damit es dann so Funktioniert.
Bitte : wer keine gescheiten Beitrag dazu leisten kann, ( also nur
scheiße labert oder runter macht ) soll nichts schreiben und andere
Beiträge voll Spammen. Danke
Klar kannst du das mit ohne ICs aufbauen.
Halt mit Transistoren. Ist dann alles etwas
größer vom Aufbau. ICs müßen auch nicht Programmiert
werden. µC werden nur Programmiert.
Gut danke. und wie fange ich da an? Hab eigentlich noch nie eine
komplette Schaltung selber aufgebaut. Sondern nur immer aus dem Netz
geholt und nach gebaut.
Mit Transistoren zu arbeiten ist kein Problem aber vielleicht könnte mir
da einer eine Schaltung Programmieren, wenn es keine zu große Sache (
Aufwand ist ). IC Board zum Brennen habe ich da. also Bräuchte ich nur
die Hex Datei.
Schaltung soll in SMD Bauweise sein, da ich mich darin gerade sehr
beschäftige.
Damit nicht wider einer mit der Frage kommt: ob ich Erfahrung habe in
Elektronik. Mittlerweile habe ich schon mehr Erfahrung als vorher.
Was für ein µC kannst du brennen ?
Willste es nicht mal selber probieren, und
dies programmieren ?
Ist eigentlich für einen Anfänger ganz gut
zu machen. Müßtest du eigentlich hin
bekommen.
Das ganze diskret mit Transistoren und/oder Ne555 aufbauen wird
wahrscheinlich größer als das Auto. Deswegen wäre ein µC die schönere
Lösung. Anfangen kann man mit dem Tutorial auf dieser Seite. Wird ein
bisserl dauern, aber jeder hat klein angefangen. Und du kannst darauf
aufbauen und weitere Modellbausachen bauen.
Gast schrieb:
> Was für ein µC kannst du brennen ?> Willste es nicht mal selber probieren, und> dies programmieren ?> Ist eigentlich für einen Anfänger ganz gut> zu machen. Müßtest du eigentlich hin> bekommen.
Ich hab das Pollin Board 2.01 damit kann ich so gut wie alle Atmegas
Brennen. Ich hab leider kein Geld für ein Buch ( Thema habe ich schon
mal geöffnet ). Ebenso komme ich mit dem Tutorial hier im Forum leider
nicht klar ( Thema wurde auch schon mal besprochen ). Gibt es nicht
irgendwie ein anderes Tutorial wo ich Programmieren lernen kann?
Ich hab noch ein Problem: Das Projekt soll ein Geschenk für wehmand
werde, Und brauch es schon in ca: 2-3 Wochen.
So schnell werde ich es nicht lernen.
Kann mir da nicht einer die Schaltung zusammen Basteln und den µC
Programmieren?
Bis zum nächsten mal kann ich ja dann Lernen aber jetzt ist es halt
schon knapp.
Ich Hoffe einer währe so nett und hilft mir dabei.
Beispiel zum Aufbau der Schaltung mit einem ATTiny12; R1-3 ca 100k.
R7-R10 sind abhängig von deinen LED's, eventuell müssen bei hohem
LED-Strom die Widerstände R4-R6 noch verkleinert werden. Was für eine
Versorgungsspannung hast du? Warscheinlich 2 Knopfzellen parallel = 3V?
Ich Programmiere eigentlich ausschließlich nur PIC's in Assembler,
wesshalb ich dir nur nen "allgemeinen Grundaufbau" des Programmes geben
kann, also vom Prinzip der Programmstruktur -
-----wobei ich mir jetzt weder die Mühe mache mir die Befehle
rauszusuchen, noch dir die ganze Arbeit vorwegnehmen möchte ;) ---.
Interner Takt des ATTiny's wird verwendet;
Zum Programmablauf selber:
PB0,1 und 2 müssen als Eingänge definiert werden, PB3-5 als Ausgänge.
Dann eine Main-Schleife in der nur die Eingänge nacheinander abgefragt
werden:
Z.b.
main
PB0 = high? ja-> call blinkenlinks ;nein -> weiter in main-loop
PB1 = high? ja-> call blinkenrechts ;nein -> weiter in main-loop
PB2 = High? ja-> call licht ;nein -> weiter in main-loop
goto main
blinkenlinks
3 sekunden warten
PB3=1
0,5 sekunden warten
// (nop-Befehls-Schleife aufrufen - gibt's bestimmt schon irgendwo im
Netz)
PB3=0
0,5 sek warten
PB3=1
0,5 sek warten
usw. (bis 10 sek lang geblinkt wurde)
return
blinkenrechts
//ähnlich wie blinkenlinks
return
licht
// - wenn du möchtest könntest du z.b. auch noch ein Pin für die gesamte
//Beleuchtung benutzen, einfach PB5 dann invertieren (on / off) - am
besten
//noch ein kleine Tastenentprellung über Software einbauen.
Return
Wenn du dir jetzt die Befehle des AVR-Assemblers raussuchst (gibts ja in
einigen Tutorials, auch hier auf der Seite) und das einmal so in
Assembler umsetzt ist das nicht ganz so Wild.
Und wenn du das dann hinbekommst- denke ich mal wirst du das nächste
Modellauto auch relativ schnell zusammengebastelt haben ;).
Vielen Dank erst mal Andreas,
Ich dacht mir ich mach eine Betriebsspannung von 12 V
Die LEDs die ich verwende haben unterschiedliche Spannungen: Weiß (
Vorne ) haben 3,2V. Rot ( Hinten ) haben 2,0 V. Orange ( Hinten+Vorne )
haben 2,0V.
Ich hab mir das so vorgestellt das sobald Spannung auf dem IC ist die
Weißen und Roten LEDs Leuchten, und die Rechts Blinken, Link Blinken,
Warnblinklicht dann auf Taster druck laufen.
Verstehe ich das richtig?
PB3 ( ist der Ausgang )
=1 ( heißt wie in der Computersprache: an )
=0 ( heißt " " : aus )
Du hast mir jetzt schon 3 mal 0,5 sek eingebaut, um auf 10 sek zu kommen
muss ich das Programm nur so weiter Schreiben oder?
PB3=0
0,5 sek warten
PB3=1
0,5 sek warten
PB3=0
0,5 sek warten
So hätte ich mit deine 3 mal 0,5 sek schon 3 Sek Gesamt, und muss es so
weiter machen bis ich 10 sek hab.
Mit rechts Blinken ist es gleich nur das ich dann anstatt PB3 dann PB4
brauche.Also so dann?
blinkenrechts
3 sekunden warten
PB4=1
0,5 sek warten
PB4=0
0,5 sek warten
PB4=1
0,5 sek warten
( usw genau wie oben bis ich 10 sek Gesamt habe)
Für die Warnblinklicht Funktion kann ich ja dann den PB5 Ausgang
benutzen oder?
Programmablauf:
warnblinklicht
3 sekunden warten
PB5=1
0,5 sek warten
PB5=0
0,5 sek warten
PB5=1
0,5 sek warten
( usw bis ich auch bei 10 sek z.B. bin ) oder.
Ich kann das Programm ja in AVR Studio schreiben oder ? und dann als Hex
Datei Konvertieren damit ich es auf den IC brennen kann?
nop-Befehls-Schleife aufrufen - gibt's bestimmt schon irgendwo im
Netz)
Ist das der Befehl damit es nach dem Ablauf abgebrochen werden soll
Code ( DECFSZ )
Hab ich aus dem PSnop-Befehls-Schleife aufrufen - gibt's bestimmt schon
irgendwo im
Netz)
Hab ich aus dem PDF im Anhang gefunden. Seite 6
nop-Befehls-Schleife aufrufen - gibt's bestimmt schon irgendwo im
Netz)
Ist das der Befehl damit es nach dem Ablauf abgebrochen werden soll
Code ( DECFSZ )
Hab ich aus dem PDF im Anhang gefunden. Seite 6
Öhm deine PDF ist irgendeine Dokumentation für ein Projekt das auf einem
PIC µ-Controller geschrieben wurde.
Schau mal nach diesem Programm:
http://www.home.unix-ag.org/tjabo/avr/AVRdelayloop.html
Downloaden, Einstellungen eingeben wie z.b. Takt, Zeitverzögerung (in
deinem fall die blinkfrequenz - etwa 0,5 - 1 sek?) - Dann wird eine
komplette Programmschleife im Assembler-Code auf der rechten Seite
angezeigt.
z.B. eine Sekunde:
; =============================
; delay loop generator
; 1000000 cycles:
; -----------------------------
; delaying 999999 cycles:
WARTEN:
ldi R17, $09
WGLOOP0: ldi R18, $BC
WGLOOP1: ldi R19, $C4
WGLOOP2: dec R19
brne WGLOOP2
dec R18
brne WGLOOP1
dec R17
brne WGLOOP0
; -----------------------------
; delaying 1 cycle:
nop
ret
; =============================
Diese Funktion kannst du dir als Unterprogramm in dein Programm
einfügen;
Wenn du jetzt eine Zeitverzögerung von 1 sek im Programm haben möchtest
wie z.b. zwischen dem Ein und Aus-Schalten eines Pins so musst du dieses
Aufrufen.
In AVR Assembler werden Unterprogramme durch:
rcall unterprogramm
aufgerufen.
In deinem Fall wird die Zeitschleife mit
rcall WARTEN
aufgerufen.
mehr dazu auf:
http://www.mikrocontroller.net/articles/AVR_Assembler_-_Unterprogramme
Bitverknüpfungen sind auf:
http://www.mikrocontroller.net/articles/AVR-Tutorial:_IO-Grundlagen#Assembler-Sourcecode
erklärt.
z.b. dein Unterprogramm "blinkerlinks" würde wie folgt aussehen:
blinkerlinks:
rcall WARTEN // 1. Sekunde vorbei
rcall WARTEN // 2. Sekunde vorbei
rcall WARTEN // 3. Sekunde vorbei
sbi PORTB,3 // setzt PB3 auf 1 - also "high"
rcall WARTEN // ruft Unterroutine "warten" auf, wartet 1
sek
cbi PORTB,3 // setzt PB3 auf 0 - also "low"
rcall WARTEN // usw.
.....
ret
Dieses Assembler-Programm wird direkt im AVR Studio geschrieben, dann
einfach in einer HEX-Datei umwandeln (passend zum µ-controller) und dann
kannst du es mittels Ponnyprog o.ä. direkt auf den µ-Controller
schreiben.
Wenn du die Schaltung an 12 Volt betreiben möchtest, so bräuchtest du
noch einen Festspannungsregler 7805, der dir die 5V-Betriebsspannung für
den µ-Controller gibt.
wie geht das jetzt mit dem nop Befehls schleife?
Hab das Programm so geschrieben wie in dem Anhang. Muss ich da jetzt den
nop rein machen oder erst weiter schreiben bis ich meine 10 sek zusammen
habe und dann den nop eingeben.
Ist das der richtige nop für 0,5 sek Timer .Taktrate 1,0000 MHz
; =============================
; Warteschleifen-Generator
; 500000 Zyklen:
; -----------------------------
; warte 499995 Zyklen:
ldi R17, $0F
WGLOOP0: ldi R18, $37
WGLOOP1: ldi R19, $C9
WGLOOP2: dec R19
brne WGLOOP2
dec R18
brne WGLOOP1
dec R17
brne WGLOOP0
; -----------------------------
; warte 3 Zyklen:
ldi R17, $01
WGLOOP3: dec R17
brne WGLOOP3
; -----------------------------
; warte 2 Zyklen:
nop
nop
; =============================
öhm moment, du hast PN - du hast da was falsch verstanden. Du gibst
deinen CODE in C ein? Args, habs eigentlich für Assembler geschrieben.
Mach mal copy und paste und vervollständige noch die 2 Programmroutinen
blinkerrechts und warnblinker - dann kannst du es kompilieren (aber
nicht den C-Compiler benutzen, sondern in AVR-Studio den normalen
Assembler-Compiler verwenden!) (falls noch irgendwo ein fehler drin ist
- bitte berichtigen, habe für Atmel's noch keine Programme geschrieben.)
hier nochmal:
.include "tn12def.inc"
init:
ldi r15, 0b00111000 ;
out DDRB, r15 ; PORTB 0,1,2 = input,
3,4,5=output
main:
sbic PORTB,0
rcall blinkerlinks
sbic PORTB,1
rcall blinkerrechts
sbic PORTB,2
call warnblinker
rjmp main
blinkerlinks:
rcall WARTEN ; 1. Sekunde vorbei
rcall WARTEN ; 2. Sekunde vorbei
rcall WARTEN ; 3. Sekunde vorbei
sbi PORTB,3 ; setzt PB3 auf 1 - also "high"
rcall WARTEN ; 1 sekunde warten
cbi PORTB,3 ; setzt PB3 auf 0 - also "low"
rcall WARTEN ; usw.
sbi PORTB,3 ; 10 sek blinken= 5x an, 5x aus
rcall WARTEN ;
cbi PORTB,3 ; Normalerweise wird dies hier in einer
rcall WARTEN ; Schleife gemacht, irgendeine Variable
sbi PORTB,3 ; wird vor der Schleife auf den wert dezimal 5
rcall WARTEN ; gesetzt und dann wird pro Schleifendurchlauf
cbi PORTB,3 ; der Wert der Variable um 1 verringert. Als
rcall WARTEN ; Abschaltkriterium gilt dann: Varibla=0
sbi PORTB,3 ; Da kannst du dir ja selber Gedanken bezüglich
rcall WARTEN ; dieser Schleife machen ;)
cbi PORTB,3
rcall WARTEN
sbi PORTB,3
rcall WARTEN
cbi PORTB,3
ret
blinkerrechts:
; EXAKT wie blinkerlinks nur das hier
; PORTB,4 anstatt PORTB,3 geschalten wird
rcall WARTEN ; 1. Sekunde vorbei
rcall WARTEN ; 2. Sekunde vorbei
rcall WARTEN ; 3. Sekunde vorbei
sbi PORTB,4 ; setzt PB4 auf 1 - also "high"
rcall WARTEN ; 1 sekunde warten
cbi PORTB,4 ; setzt PB4 auf 0 - also "low"
rcall WARTEN ; usw.
ret
warnblinker:
rcall WARTEN ; 1. Sekunde vorbei
rcall WARTEN ; 2. Sekunde vorbei
rcall WARTEN ; 3. Sekunde vorbei
sbi PORTB,3 ; setzt PB3 auf 1 - also "high"
sbi PORTB,4 ; setzt PB4 auf 1
rcall WARTEN ; 1 sekunde warten
cbi PORTB,3 ; setzt PB3 auf 0 - also "low"
cbi PORTB,3
rcall WARTEN ; Ähnlich den Blinkerroutinen, nur das hier
; PORTB,3 und PORTB,4 geschalten werden.
..........
ret
WARTEN:
ldi R17, $09
WGLOOP0: ldi R18, $BC
WGLOOP1: ldi R19, $C4
WGLOOP2: dec R19
brne WGLOOP2
dec R18
brne WGLOOP1
dec R17
brne WGLOOP0
nop
ret
init:
ldi r15, 0b00111000 ;
out DDRB, r15 ; PORTB 0,1,2 = input,
3,4,5=output
3,4,5=output ist nur ein Kommentar - hat es nur durch die Formatierung
des Forums verschoben - mach ein Semikolon davor, dann passts!
Andreas H. schrieb:
>>> warnblinker:> rcall WARTEN ; 1. Sekunde vorbei> rcall WARTEN ; 2. Sekunde vorbei> rcall WARTEN ; 3. Sekunde vorbei> sbi PORTB,3 ; setzt PB3 auf 1 - also "high"> sbi PORTB,4 ; setzt PB4 auf 1> rcall WARTEN ; 1 sekunde warten> cbi PORTB,3 ; setzt PB3 auf 0 - also "low"> cbi PORTB,3> rcall WARTEN ; Ähnlich den Blinkerroutinen, nur das hier> ; PORTB,3 und PORTB,4 geschalten werden.> ..........> ret>> WARTEN:> ldi R17, $09> WGLOOP0: ldi R18, $BC> WGLOOP1: ldi R19, $C4> WGLOOP2: dec R19> brne WGLOOP2> dec R18> brne WGLOOP1> dec R17> brne WGLOOP0> nop> ret
Bei cbi PORTB,3 setzt PB3 auf 0 - also "high"
und dann das zweite: da muss doch dann das stehen oder?
cbi PORTB,4 setzt PB4 auf 0
" " " "
( und nicht 3 ) ( da auch ) oder?
Welche Datei muss ich anhängen in dem Forum damit du dir das Programm (
das ich verfollständigt habe ) ansehen kannst? Als bild kann ich es
nicht mehr einfügen da sonst der untere teil fehlt.
Du hast die falsche Datei angehängt... "Kompilieren" unter Build ->
Build (Hotkey: F7).
Aber ohne dir auf den Schlips treten zu wollen: Du hast sowas von
überhaupt garkeine Ahnung, dass dieses Projekt leider vielvielviel zu
groß für dich ist. Außerdem ist auch das Programm was du hier bekommen
hast ein sehr schlechter Stil (-> Warteschleifen). Klar reicht es dafür
aus, aber eben auch nur dafür.
Das Tutorial auf dieser Seite kann dir eigentlich kaum zu schwer sein -
das fängt bei 0 an und geht langsam vor. Hast du dch schonmal damit
befasst? Warum meldest du dich dann nicht einmal mit einer konkreten
Problemfragestellung? Beispiel: Tutorial Kapitel 1, Seite so und so,
Thema das und das: Ich verstehe nicht, warum das und das so sein muss.
Matthias
Dan war ich ja vorher doch schon richtig.
Ich hab mich schon mal mit dem Tutorial befasst. aber ich konn da schon
am Anfang nicht mit wie die das jetzt mit dem Befehl meinen.
Zudem habe ich als ich es im Forum schon mal an sprach das falsche
Tutorial bekommen weil sonst hättest du mich nicht gefragt ob ich in C
schreibe.
Von dem Tutorial habe ich nämlich den Befehl.
So hab jetzt auf F7 gedrückt aber im unteren Fenster bekomme ich die
Fehlermeldung:
FATAL ERROR: Cannot open output file D:\Dokumente und
Einstellungen\Kr³mel\Eigene Dateien\Blinklicht.hex: No such file or
directory
Dominik H. schrieb:
> FATAL ERROR: Cannot open output file D:\Dokumente und> Einstellungen\Kr³mel\Eigene Dateien\Blinklicht.hex: No such file or> directory
Wird wohl an den Sonderzeichen/Umlauten im Pfad liegen.
Olli
Dominik H. schrieb:
> Bei cbi PORTB,3 setzt PB3 auf 0 - also "high">>> und dann das zweite: da muss doch dann das stehen oder?>> cbi PORTB,4 setzt PB4 auf 0> " " " "> ( und nicht 3 ) ( da auch ) oder?
# Mit cbi ("clear bit") wird das angegebene Bit auf 0 gesetzt.
# sbi ("set bit") bewirkt das Gegenteil.
In der Digitaltechnik gibts grundsätzlich 2 Zustände:
LOW und HIGH.
Also erst einmal etwas grundsätzliches:
Falls du nun eine Betriebsspannung von 5Volt hast, so werden deine
definierten Logic-Pegel: Low=GND=0V und High=VCC=5V betragen.
Falls du jetzt etwas mit dem AVR-Tutorial falsch in Verbindung bringst:
Im AVR-Tutorial werden die Leuchtdioden direkt vom pin des µ-Controllers
aus angeschlossen, und zwar gegen +VPP ( weil manche
Treiber//Schaltausgänge des Mikrocontrollers mehr Strom bei einem
LOW-Pegel liefern können als bei einem HIGH-Pegel.
D.H. in diesem fall wird die Masse der Leuchtdiode geschaltet, es muss
also eine negative spannungheraus kommen damit die Leuchtdiode
leuchtet. Dies bedeutet wiederrum -> Portb Pin x = high : LED liegt
zwischen Vcc und Vcc - und es wird kein Strom fließen. Wird nun aber der
Portb Pin x auf low geschaltet so liegt die LED zwischen VCC und GND -
und fängt an zu leuchten.
In der Schaltung, die ich dir Heute vormittag gezeichnet hatte sind 3
NPN Transistoren. Diese werden zwischen Emitter und Kolektor leitend,
sobald durch deren Basis-Anschluss eine positive Spannung in Richtung
Emitter fließt. Sobald diese nun leitend sind wird durch die
Leuchtdioden ein Strom fließen, d.h. diese fangen an zu leuchten.
Das bedeutet für unsere Schaltung: Es muss ein positives Signal = High
oder Logisch 1 herauskommen damit eine Leuchtdiode Leuchtet.
Und öhm zu deiner eigentlichen frage: Ja, dort müsste PORTB,4 stehen ;)
Olli R. schrieb:
> Dominik H. schrieb:>>> FATAL ERROR: Cannot open output file D:\Dokumente und>> Einstellungen\Kr³mel\Eigene Dateien\Blinklicht.hex: No such file or>> directory>> Wird wohl an den Sonderzeichen/Umlauten im Pfad liegen.
Nochmal: es ist keine gute Idee, Umlaute & Sonderzeichen bei
Benutzernamen und Pfaden zu verwenden. Hier ist Dir das gerade um die
Ohren geflogen.
Olli R. schrieb:
> Dominik H. schrieb:>>> FATAL ERROR: Cannot open output file D:\Dokumente und>> Einstellungen\Kr³mel\Eigene Dateien\Blinklicht.hex: No such file or>> directory>> Wird wohl an den Sonderzeichen/Umlauten im Pfad liegen.>> Olli
und vieleicht auch an der Pfadlänge - kenne das zumindest vom PIC das
dort manchmal der Compilor motzt!
Dominik H. schrieb:
> Ich hab mich schon mal mit dem Tutorial befasst. aber ich konn da schon> am Anfang nicht mit wie die das jetzt mit dem Befehl meinen.
Ich würd gern dieses "Problem" nochmal aufgreifen:
Zuerst vorweg: Wie alt bist du?
Dann: Das AVR-Assembler Tutorial auf dieser Seite. Kapitel 1 und 2
kannst du überspringen, mit dem Pollin Board hast du ja die Hardware
schon. Dennoch könnte nachlesen nicht schaden.
Spannend wirds ab hier:
http://www.mikrocontroller.net/articles/AVR-Tutorial:_IO-Grundlagen
Die Schaltung brauchst du nichtmal zusammenstecken, die bietet dein
Pollinboard schon von Haus aus. Ich weiß allerdings nicht, wie das mit
den Pin/Port Belegungen ist. (Kenne das Board nicht).
Du kannst jetzt also mit dieser Seite des Tutorials ein wenig
herumspielen, alles ausprobieren, ein wenig ändern, testen, lernen.
Treten dabei Probleme auf? Verstehst du was nicht? Klappt was absolut
garnicht was da steht?
Dann wende dich bitte mit einer EXAKTEN Problembeschreibung an das
Forum. Poste ein wenig Quellcode, beschreib genau was du wie
angeschlossen hast (Schaltplan), zitiere eventuell sogar den Absatz aus
dem Tutorial an dem es hängt (oder beschreibe genau).
Ungenaue Problembeschreibung und Fragestellung führt nur zu ewig langen
Diskussionen mit ner Ergebnischance nahe 0 (oder nach 10000 Beiträgen).
Sicherlich ist es etwas Aufwand, seine Frage geschickt, ausführlich und
dennoch einigermaßen Knapp zu formulieren, aber am Ende ist dir damit
geholfen.
Matthias
Edit:
Ganz wichtig wäre auch, dass du für jedes unabhängige Problem einen
neuen Thread aufmachst. So bleibt es übersichtlich. Ein Titel wie dieser
hier ("Neues Projekt, Hilfe!") ist zudem nicht aussagekräftig und nicht
gern gesehen.
Andreas H. schrieb:
> Olli R. schrieb:>> Dominik H. schrieb:>>>>> FATAL ERROR: Cannot open output file D:\Dokumente und>>> Einstellungen\Kr³mel\Eigene Dateien\Blinklicht.hex: No such file or>>> directory>>>> Wird wohl an den Sonderzeichen/Umlauten im Pfad liegen.>>>> Olli>> und vieleicht auch an der Pfadlänge - kenne das zumindest vom PIC das> dort manchmal der Compilor motzt!
Also Speichere ich solche Dateien in eine Ordner der keine Umlaute drin
hat.
So dann D:\Dokumente und Einstellungen\Eigene Dateien\Blinklicht.hex:
Dann ist der Pard nicht so lang und hat auch keine Umlaute drin.
Dominik H. schrieb:
> So dann D:\Dokumente und Einstellungen\Eigene Dateien\Blinklicht.hex:> Dann ist der Pard nicht so lang und hat auch keine Umlaute drin.
Auch keine so gute Idee, \Dokumente und Einstellungen\ ist eigentlich
dem Betriebssystem vorbehalten, dort liegen die Benutzerprofile (in
Deinem Fall wohl "Krümel").
Die Tatsache, dass Du (unterhalb davon) dort Schreibrechte hast, deutet
daraufhin, dass Du mit Administratorrechten arbeitest, das muss auch
nicht sein, aber was red ich ;-)
Ich hab meinen Rechner beim Software aufspielen so eingestellt da eh nur
ich dran bin, und es dann egal ist. Ob Admin oder nicht.
Anstatt das Programm so zu schreiben.
warnblink
rcall WARTEN ; 1. Sekunde vorbei
rcall WARTEN ; 2. Sekunde vorbei
rcall WARTEN ; 3. Sekunde vorbei
sbi PORTB,3 ; setzt PB3 auf 1 - also "high"
sbi PORTB,4 ; setzt PB4 auf 1
rcall WARTEN ; 1 sekunde warten
cbi PORTB,3 ; setzt PB3 auf 0 - also "low"
cbi PORTB,4 ; setzt PB4 auf 0
rcall WARTEN ; 1 Sekunde warten
sbi PORTB,3 ; setzt PB3 auf 1 - also "high"
sbi PORTB,4 ; setzt PB4 auf 1
rcall WARTEN ; 1 Sekunde warten
cbi PORTB,3 ; setzt PB3 auf 0 - also "low"
cbi PORTB,4 ; setzt PB4 auf 0
usw.
Kann ich nicht einfach den PB5 nehmen und die LEDs dann so zusammen
Löten wie auf deiner Zeichnung Andreas. Dann sollte das Programm so
aussehen.
warnblink
rcall WARTEN ; 1. Sekunde vorbei
rcall WARTEN ; 2. Sekunde vorbei
rcall WARTEN ; 3. Sekunde vorbei
sbi PORTB,5 ; setzt PB5 auf 1 - also "high"
rcall WARTEN ; 1 sekunde warten
cbi PORTB,5 ; setzt PB5 auf 0 - also "low"
rcall WARTEN ; 1 sekunde warten
sbi PORTB,5 ; setzt PB5 auf 1 - also "high"
rcall WARTEN ; 1 sekunde warten
cbi PORTB,5 ; setzt PB5 auf 0 - also "low"
usw.
Oder hat der IC dann was?
Danke bis jetzt mal für eure Geduld mit mir.
Ich mach das ganze ( glaub ich mal ) schwieriger als es ist.
Ich hab es schon mal im anderen Beitrag gesagt:
Ich kann CNC Fräsen, NC Drehen, Computertechnik und noch anderes. Aber
bei Mikrocontroller scheitert es zum ersten mal bei mir, es zu lernen.
ich bin froh das ich ein so gutes ( was sage ich, Super ) Forum habe mit
Mitglieder. Ausnahme von ein paar :-)
Naja das könntest du schon. Vorrausgesetzt du möchtest die Scheinwerfer
und das Rücklicht blinken lassen.
Im Assembler-Programm fehlt noch eine Kleinigkeit: du wolltes damit das
normale "Licht" direkt beim einschalten der Betriebsspannung angeht.
Also wenn du es so zusammen lötest wie ich das dir gezeichnet habe und
du den PB5 ein/aus schalten lässt bei warnblink - dann blinkt ja dein
Scheinwerfer/Rücklicht - war ja nicht so gewollt, oder? - Aber
theoretisch könntest du das auch so machen.
Nein, der µ-Controller hat da nichts dagegen!
Zum Pollin Evaluationboard: Problem beim Funktionstest auf dem Board
selber ist halt damit die vorhandenen Taster und LED's auf keinen Pin
der 8 poligen ATtiny Fassung geführt ist.
Wenn du etwas mit dem Board selber ausprobieren möchtest, verwende einen
ATtiny 2312 oder größer, nehm die passende include-Datei und ändere die
Port's im Programm: z.B. Taster 1 liegt auf PORTD,2.
So ich hab mir das nochmal überdacht, ich mach es so wie du es mir
geschrieben hast: Mit-
rcall WARTEN ; 1. Sekunde vorbei
rcall WARTEN ; 2. Sekunde vorbei
rcall WARTEN ; 3. Sekunde vorbei
sbi PORTB,3 ; setzt PB3 auf 1 - also "high"
sbi PORTB,4 ; setzt PB4 auf 1
rcall WARTEN ; 1 sekunde warten
cbi PORTB,3 ; setzt PB3 auf 0 - also "low"
cbi PORTB,4 ; setzt PB3 auf 0
und nehme denn PB5 Anschluss für das Dauerlicht Scheinwerfer ( Vorne )
Scheinwerfer ( Hinten ).
Da muss ich ja dann nichts weiter machen als PB5 auf ( dauer ein ) zu
programmieren.
So oder?:
sbi PORTB,5 ; setzt PB5 auf 1 - also "high"
Mehr brauche ich da ja nicht.
das schreibe ich gleich an den Anfang des Programms
Was ist eigentlich ein Attiny12 S? ich finde nur die Attiny12 L und so.
Finde den überhaupt nicht. oder ist das so eine SMD form.
Wie kann ich eigentlich eine IC in SMD Bauform Brennen? Die normalen
stecke ich halt in denn Sockel Aber die SMD Bauweise ist anderes.
Gibt es eine Erweiterung auf SMD ICs brennen für das Evalutionboard
2.01?
oder muss ich mir für SMD selber eine Vorrichtung bauen?
Gruß
Dominik
Dominik H. schrieb:
> Wie kann ich eigentlich eine IC in SMD Bauform Brennen? Die normalen> stecke ich halt in denn Sockel Aber die SMD Bauweise ist anderes.
Ganz einfach. Platine layouten, IC einloeten und die ISP-Leitungen als
Wannenstecker rausfuehren. Dann mit einem beliebigen ISP-Dongle
programmieren.
Dominik H. schrieb:
> Ich kann CNC Fräsen, NC Drehen, Computertechnik und noch anderes. Aber> bei Mikrocontroller scheitert es zum ersten mal bei mir, es zu lernen.
Das glaube ich nicht!
Du bist mit Adminstatus, auf ner Dose im Internet unterwegs!
Hast Du so geschrieben.
Was CNC-Fräsen angeht, da musste mal ein selbst gefertiges Teil
vorstellen.
M. W. schrieb:
>> Was CNC-Fräsen angeht, da musste mal ein selbst gefertiges Teil> vorstellen.
Hier mal ein Projekt mit Bild. Und das 2. Projekt nur der CNC Code da
ich das Werkstück nicht mehr habe.
Projekt 1. Putzdeckel:
http://img21.imageshack.us/img21/6316/zwischenablage01gog.jpg
CNC Programm :
http://img21.imageshack.us/img21/5706/document1.tif
Projekt 2. Kühlkörper.
CNC Programm :
http://img21.imageshack.us/img21/3015/document2.tif
Die Projekte wurden an einer Maho 600C Maschine abgearbeitet. Ich stehe
dafür gerade das das meine Programmierung war ( falls einer meint das
kann nicht von mir sein oder so )
Ich Denke das ich mich nicht weiter zur Rechenschaft ziehen lassen muss.
Ich kann CNC und Vertick.
Frage beantwortet M. W. (hobbyloet)???
Gruß
Dominik
Der Attiny will ja auch leben...
Schau doch mal im Datenblatt unter "Electrical Characteristics". Müsste
sich dann "Supply Voltage", "Vcc" o.ä. nennen.
Dürfte so zwischen 3.0 und 5.5 V liegen. Wo nimmste denn deinen
eigentlich her?
Das Wort "Saft" hat gefehlt.. Will sagen: Woher kommt denn die Spannung?
Wenns ein ATTINY12 (ohne zusatz) wird brauchst du 8 MhZ irgendwas
zwischen 4 und 5.5 V.
Ja dann musst Du Dich ja nur noch drum kümmern, dass Du die irgendwoher
bekommst, die besagten 5V...
Das ist dann natürlich auch die Spannung, die an den Ausgängen bei
High-Pegel anliegt. Wäre evtl. für die Auslegung von
(LED-)Vorwiderständen an Deiner Blink-Schaltung zu berücksichtigen.
Karl heinz Buchegger schrieb:
> Ja.> Ist eine Standardlösung, wenn man einen Trafo + Gleichrichter hat.>> Schau mal zb hier> http://www.mikrocontroller.net/articles/AVR-Tutorial:_Equipment#Stromversorgung>> Na, erkennst du den Chip wieder?
Ist der Gleiche
Wenn ich da schon eine 100nF Kondensator drin habe, brauche ich dann vor
den IC keinen mehr, oder doch?
Die Frage tritt i.d.R. philosophische bis quantenmechanische
Diskusssionen los. Wenn Du Platz hast, mach auch einen davor, wenn Du
keinen hast, dann lass ihn weg. Wird i.d.R. genauso funktionieren. Für
Deine Anwendung ist es relativ egal, ob der vor dem 7805 nu da ist oder
nicht.
Du solltest aber dahinter sowsie am uc auf jeden Fall 100 nF möglichst
nah an den Vcc und GND-Pins haben.
Was vor oder nach dem 7805 steht ist relativ egal... Herstellerkürzel
und Ausführung. Nur wenn's 78L05 heisst, ist es was anderes. Das ist
dann der kleine Bruder mit 5V aber weniger Ausgangsstrom. Aber diese
Fragen kann alle ein Datenblatt beantworten...
Üblicherweise dürfte es dich übrigens günstiger kommen, wenn du deine
Bauteile neu & nicht alle einzeln über Ebay bestellst :-) Reichelt und
CSD-Elektronik sind da für die Hobbybastler erstmal günstige Adressen.
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