Blinkender Tannenbaum bitte um Hilfe

Gast #444287
Lesenswert?

Bitte Hilfe!!!!!!

Ich habe meinem Bruder versprochen für seinen selbst gebastelten 
Tannanbaum mit drei verschiedenen Farben LED'S (jeweils gemeinsame 
Anode, Parallelschaltung => BS170 pro kreis) einen Attiny13 so zu 
programmieren, das der Baum blinkt.
Ich schaffe es beim bestenn Willen nicht avr-gcc irgendwas zu entlocken 
was auch nur annähernd das tut.

Kann mir jemand helfen Bitte bitte?
Der Baum muss bis Samstag fertig sein, das ist mein Problem.

Danke
Gast #444307
Lesenswert?

Reichen auch 4 Rosenkränze?

Sorry ich verzweifle langsam wirklich

Also ich möchte einen Attniy13 dazu bringen das er einen von drei 
Ausgängen für eine bestimmte Zeit (2s) 5V ausgibt und dann den Ausgang 
wieder auf 0 legt und den nächsten auf 5V usw. sodass der Tannenbaum 
blinkt.
Das wäre meine Rettung.

reicht das als genauere Erklärung?

Danke für die schnelle Antwort.
Gast #444320
Lesenswert?

Am besten, du beschreibst mal, welche Hürde du gerade nicht nehmen 
kannst. Wo klemmts denn genau?

So, wie du es schreibst, müsste man dir ein ganzes Tuturial schreiben. 
Apropos Tutorial - das hast du gelesen?
Gast #444326
Lesenswert?

Ist die Schaltung denn fertig? Hast du was um den uC zu programmiern? 
Wenn ja, dann stell mal nen kleinen Schaltplan rein an welchem Pin die 
LEDs hängen, dann schreib ich dir fix des Prog falls es wirklich nur um 
das GEblinke geht.
Gast #444331
Lesenswert?

Ich habs gelesen.....
mit dem verstehen ist das immer sonne Sache ;-)

also, eigendlich sollte

MCU = attiny13
FORMAT = ihex
Target = main
SRC = main


als makefile doch reichen.
Es funktioniert aber nicht. Compiler bricht ab....

Ich bin echt verzweifelt und seh vielleicht den Wald vor lauter Bäumen 
nicht mehr.
Gast #444334
Lesenswert?

Einfach einen Timer-output-compare-Interrupt so dimensionieren (Teiler, 
output-compar-INT) dass er 1 (oder 2) sekunden ausgelöst wird und in der 
INT-Routine die Ausgänge immer einen weiterschalten. Fertig.
Beispiel:
FCPU: 16MHz
Timer1 (16bit) wird benutzt

TCCR1A = 0b00000000;
TCCR1B = _BV(ICES1)|_BV(WGM12)|_BV(CS12)|_BV(CS10)|_BV(ICNC1);// Teiler 
/1024, CTC - Mode
TCNT1 = 0;  // Timer rücksetzen
OCR1A = 15624;  // OCR1A = 15625 (16MHz  1024  15625 = 1s)

Löst den OCR-Interrupt 1x pro Sekunde aus.
Gast #444341
Lesenswert?

Im Makefile hast hoffentlich mehr als nur die 4 Zeilen stehen?! Das sind 
nur die Werte, die du geändert hast?

Falls nicht undbedingt Makefile neu machen (beim Standard nur die 
entsprechenden Änderungen machen) oder auf AVR Studio umsteigen.
Gast #444359
Lesenswert?

Mach' noch einen 270-Ohm-Widerstand zwischen Gate und Portpin, ist 
besser für den µC. Ansonsten wie oben gesagt: Timer zum umschalten 
benutzen. Falls der Tiny13 keinen 16-Bit-Timer hat, 8-Bit un's auch, 
dann halt die Überläufe zählen bis 2s um sind, dann die Portpins 
umschalten.
Gast #444360
Lesenswert?

Sorry berechtigte Frage, wenn man auch Falsche Symbole benutzt die 
Portpins kommen links unten dran, da wo das zweite mal vcc steht. (OK 
ich gebs zu ungeschickt aber...)


Danke das so viele versuchen zu Helfen.
Gast #444364
Lesenswert?

Und wo sind bei deiner Schaltung jetzt die Portpins angeschlossen?

"Es funktioniert aber nicht. Compiler bricht ab...." ist übrigens eine 
ziemlich nutzlose Beschreibung des Problems. Der Compiler wird nicht 
einfach so aus Spaß kommentarlos abbrechen, sondern eine Fehlermeldung 
ausgeben. Am besten zeigst du mal dein Programm und die Ausgabe des 
Compilers (per copy/paste bitte, nicht irgendwas abgetipptes, was du für 
sinngleich hälst).
Gast #444446
Lesenswert?

Metrux, ist ein hardware, oder ein software problem...

zeig uns mal einen kompleten schaltplan mit uc, und den code den du 
verwendest, und schreib uns die fehlermeldung die kommt, dann wirst du 
wessentlich präzisere antworten bekommen und sicher zum ziel kommen...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren