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.
mit welchen Butten mach ich jetzt noch gleich das kompilieren? Englisch ist nicht mein ding, hab es in der Schule nicht gehabt.
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!
Danke für die Aufklärung. Wo ich den das Assembler Tutorial. Das was ich hatte was ja C
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.
Bei der Warnblinkfunktion hast du 3x hintereinander beide pins auf Low - Copy&Paste fehler! 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,4 ; setzt PB4 auf 0 rcall WARTEN ; 1 Sekunde warten -> cbi PORTB,3 ; setzt PB3 auf 1 - also "high" -> cbi 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
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
Dominik H. schrieb: > Was ist eigentlich ein Attiny12 S? ich finde nur die Attiny12 L und so. > > Gruß > Dominik ???????????????????
Kann ich den für das vorhaben benutzen??? http://www.reichelt.de/?;ACTION=3;LA=444;GROUP=A362;GROUPID=2958;ARTICLE=45018;START=0;SORT=artnr;OFFSET=16;SID=267vcdfKwQARoAACq9jYU1a282cf892e9468bc4b1ae4f727cc10e
Ich weis nicht mehr genau aber ich glaub das hier mal die rede von einer Festspannung war, die ich für den IC brauche. Kann das sein ?
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.
Da steht z.B. das MAXimum von 6V. Weniger geht natürlich auch. Wie viel weniger steht auf Seite 1 des DB oder auch auf Seite 75...
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.
Kann ich die Schaltung für die Festspannung benutzen? Wäre genau das richtige so weit ich es sehe. Hab auch 9 V Eingang, und 5 V Ausgang zum IC die ich dann brauche. http://sol.ea.rbs.schule.ulm.de/sol/eoffline/sites/bau/schalt/02043011.gif
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?
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.
Dann mach ich einen rein. Ist eh in SMD Bauform. dann sind die 2 mm auch noch drin :-)
Andere Frage noch. in der Schalung von Andreas ( ganz oben ) sind BC849 er Transistoren drin. würden da BC846 er auch gehen?
PS Die kann ich nehmen gel? http://cgi.ebay.de/20-Spannungsregler-L7805CV-L-7805-CV-NEU_W0QQitemZ220419297341QQcmdZViewItemQQptZBauteile?hash=item335203903d&_trksid=p4634.c0.m14.l1262&_trkparms=|301:1|293:1|294:30 Wie so ich frage ist: weil mir die letzten 2 ziffern nach L7805/ CV unklar sind.
Yip, geht auch. Ube max sind bei den 846ern 5V, das geht also noch. http://www.datasheetcatalog.org/datasheet/GeneralSemiconductor/mXuwytr.pdf
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.