Forum: Compiler & IDEs PD Entprellung und PWM


von Peter S. (petx)


Angehängte Dateien:

Lesenswert?

Hallo,
habe mir vor einer Woche einen mkII und einige attiny85 bestellt und bin 
seit ein paar Tagen mehr auf microkontroller.net als mit meinen Kindern.
Mein Problem, ich bin blutiger Anfänger (Ich weis.. AVR Tutorial- 
AVR-Gcc Tutorial lesen, Asembler verwenden Datasheet... usw), möchte 
aber trotzdem durch kopieren einzelner kleiner Stücke kleinigkeiten 
bauen.
Mein Projekt Eintaster und PWM, habe bereits versucht Entprellung von 
Peter Dannegger(Grosses Dankeschön an Herrn Ing.) zu adaptieren, 
wahrscheinlich stümperhaft und habe eine funktionierende Pwm Steuerung 
gefunden. Allerdings bekomme ich beide nicht in eine funktionierende 
Aplikation, wahrscheinlich wegen dem  TCCR0B – Timer/Counter Control 
Register.
In der Entprellung   (1<<CS02)|(1<<CS00);
fürdie PWM   TCCR0B = 0; dann TCCR0B |= (1<<CS00);
An und für sich würden Beide Teile ja halbwegs funktionieren jedoch 
nicht so zusammen, der letzte Teil mit dem Menu stellt nur ein optisches 
feedback am breadboard da.

ich wäre sehr dankbar für konkrete Hilfe, da ich sonst bis zum 
Vollständigen Verständnis der sehr komplexen Materie noch 
tausendundeinenacht schlaflos verbringen muss.
Danke im Vorraus

peter

ps wollte den Quelltext in den Beitrag einfügen, ist mir aber zum Glück 
nicht gelungen da eh zu lang.

von Peter D. (peda)


Lesenswert?

Der ATtiny85 hat 2 Timer. Es ist daher für Dich einfacher, Entprellen 
und PWM mit verschiedenen Timern zu machen.


Peter

von Peter S. (petx)


Lesenswert?

hallo Peter
Vielen Dank für die frühe Antwort,
leider bin ich noch zu dumm um aus dem Datasheet einen zweiten Timer 
aus:

 DDRB |= (1<<PB0);
           TCCR0B = 0;
    TCCR0A = (1<<WGM00)|(1<<WGM01);
    TCCR0A |= (1<<COM0A1);
    OCR0A = 10;       //duty cycle
    TCCR0B |= (1<<CS00);

zu erstellen,wenn Du mich bitte mit dem Zaunpfahl hauen könntest.
Danke

von scherzkeks (Gast)


Lesenswert?

Guckst Du im PDF Chapter 11 Timer0 mit PWM gefolgt von Chapter 12 Timer1 
:-)
Dann nimmst Du logischerweise den Timer0 mit der Hardware-PWM für die 
Signalausgabe und Timer1 für die Zeit und Tastenentprellen usw.

von Karl H. (kbuchegg)


Lesenswert?

Peter E. schrieb:
> hallo Peter
> Vielen Dank für die frühe Antwort,
> leider bin ich noch zu dumm um aus dem Datasheet einen zweiten Timer
> aus:

Dann wirds Zeit.

FAQ: Timer


'Leder kann ich das nicht' ist oft ein Synonym für 'Ich will das nicht 
machen, bitte macht ihr das für mich'.
Hilft nichts. Da musst du durch. Und soooo kompliziert ist das nicht. 
AUf Dauer kommt man eben nicht mit reinem Copy&Paste durch.


Leg erst mal die Entprellung zur Seite, fang ein neues Projekt an, 
verkabel eine LED an den OCR-Ausgang des Timers mit der PWM und schreib 
dir ein Programm, mit welchem du die PWM losgelöst von allem anderen 
testen kannst.

von Peter S. (petx)


Lesenswert?

So danke euch beiden scherzkeks und Karl Heinz Buchegger,
Tja wenn ich gestern und vorgestern nicht um 5 morgens das tutorial und 
pdf geschlossen hätte, würde ich nicht fragen....
@KHB: Losgelöst funktioner die PWm ja gut in allen Facettten ... 
Entprellung ist auch allererste Sahne, und Probleme zerlegen ist immer 
gut.
Da werd ich wohl doch alleine druch müssen, scherzkeks, sind eh nur 31 
Seiten, allerdings ohne Kontext!
Danke für den Tip (Timer0 mit der Hardware-PWM)

von Karl H. (kbuchegg)


Lesenswert?

Peter E. schrieb:
> So danke euch beiden scherzkeks und Karl Heinz Buchegger,
> Tja wenn ich gestern und vorgestern nicht um 5 morgens das tutorial und
> pdf geschlossen hätte, würde ich nicht fragen....
> @KHB: Losgelöst funktioner die PWm ja gut in allen Facettten ...

Welche?
Die mit einem Timer realisierte, oder deine Notlösung mit Selber-zählen 
in der Hauptschleife.

Wenn das nicht klar rausgekommen ist: Du sollst dir mit einem Timer eine 
PWM realsieren, wobei der Timer die PWM ganz alleine macht.
Das ist ein 6-Zeiler!

von scherzkeks (Gast)


Lesenswert?

Peter E. schrieb:
> Da werd ich wohl doch alleine druch müssen, scherzkeks, sind eh nur 31
> Seiten, allerdings ohne Kontext!

Schon klar :-P
Die Register für'n Timer0 stehen in Chapter 11.9 und die für'n Timer1 in 
Chapter 12.3
Nun müßtest Du nur noch verstehen was die Timer machen und wie Du sie so 
einstellst das eine PWM bzw. eine Zeitbasis entsteht.
Dafür ist das Tutorial gut geeignet ;-)

von Karl H. (kbuchegg)


Lesenswert?

scherzkeks schrieb:
> Peter E. schrieb:
>> Da werd ich wohl doch alleine druch müssen, scherzkeks, sind eh nur 31
>> Seiten, allerdings ohne Kontext!
>
> Schon klar :-P
> Die Register für'n Timer0 stehen in Chapter 11.9 und die für'n Timer1 in
> Chapter 12.3
> Nun müßtest Du nur noch verstehen was die Timer machen und wie Du sie so
> einstellst das eine PWM bzw. eine Zeitbasis entsteht.
> Dafür ist das Tutorial gut geeignet ;-)

Und da sowas oft gefragt wird, hab ich auch in die FAQ einen Abschnitt 
"Was sie schon immer über Timer wissen wollten aber im Datenblatt nicht 
gefunden haben" eingefügt.
FAQ: Timer

Da steht zwar nur das wichtigste drinnen, aber das sollte für 
Standardfälle ausreichend sein. Und ja, da ist auch ein Abschnitt über 
PWM drinnen. Und wenn er in die FAQ reingeschaut hätte, hätte er seine 
erste Timer-basierte PWM schon längst am laufen.

Peter E.
Ich geb dir die Links schon aus gutem Grund. Aber du musst sie dir auch 
ansehen! Ich weiß schon, dass es dir am liebsten wäre, wenn dir hier wer 
auf deine Anfrage einen Code postet. Und zwar genau den, den du brauchst 
und extra für dich abgestimmt. Das ist allerdings nicht die Philosophie 
des Forums, das zu tun. Zumindest nicht bei Standardaufgaben, die man 
als Programmierer beherrschen muss.

von Peter S. (petx)


Lesenswert?

Super Danke für die Antworten und Tips, jetzt wirds klappen.

am Rande an Herrn Karl Heinz Buchegger > 'Leder kann ich das nicht' ist 
oft ein Synonym für 'Ich will das nicht machen, bitte macht ihr das für 
mich'.
Finde ich jetzt nicht gerade beleidigend, aber ich würde mir da nie was 
nehmen lassen, was ich selbst schaffen könnte, gerade in einem 
Freizeitbereich,(würde eher zu einerm Schüler passen der null Bock auf 
ein aufgedrücktes Projekt hat das ihm am Ar.. vorbeigeht), hast aber 
recht ich hätte solche Anfängerfragen einfach nicht fragen dürfen, ohne 
zumindest die Grundkenntnisse erworben zu haben.
schönen Abend
großes Dankeschön norchmal

von Karl H. (kbuchegg)


Lesenswert?

Peter E. schrieb:
> Super Danke für die Antworten und Tips, jetzt wirds klappen.
>
> am Rande an Herrn Karl Heinz Buchegger > 'Leder kann ich das nicht' ist
> oft ein Synonym für 'Ich will das nicht machen, bitte macht ihr das für
> mich'.
> Finde ich jetzt nicht gerade beleidigend, aber ich würde mir da nie was
> nehmen lassen, was ich selbst schaffen könnte, gerade in einem
> Freizeitbereich,(würde eher zu einerm Schüler passen der null Bock auf
> ein aufgedrücktes Projekt hat das ihm am Ar.. vorbeigeht), hast aber
> recht ich hätte solche Anfängerfragen einfach nicht fragen dürfen, ohne
> zumindest die Grundkenntnisse erworben zu haben.

Na ja. Was soll dann der Quatsch mit 'ich bin zu dumm'

Versuch dein Bestes und wenns nicht klappt, dann zeig den Code und 
jemand wird dir zeigen wo die Probleme liegen.
Aber das klang so nach Mitleid-Heischen: Ich kaaaansss nicht - bitte 
macht ihr mal.

von Peter S. (petx)


Lesenswert?

Danke, jetzt laufen beide wie sie sollen.

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.