PWM-Signal auf Attiny13a verarbeiten.

Hallo Horge87,

Der Sketch von fpw-freun.de kompiliert bei mir ohne Fehlermeldung. Ich hab mir extra zum Testen den Core für den Attiny13 installiert.
Ich habe schon mehrere solche RC-Switches geabut, allerdings mit dem Attiny85 und Attiny84 (weil ich für ein Polizeifahrzeug-Modell mehr Funktionen brauchte , reichte der 85er nicht mehr -> zuwenige Pins.)

Du musst also den Sketch irgendwie falsch eingegeben haben. Überprufe vor allem die Zeile mit dem PulseIn..

LG Stefan

Du musst also den Sketch irgendwie falsch eingegeben haben. Überprufe vor allem die Zeile mit dem PulseIn..

Da muss man nur die Meldung lesen!

too few arguments to funktion 'unit32_t pulseIn(unit8_t, unit8_t, unit32_t)'

Wenn man dann genau in den Beispiel Code schaut sieht man 2 Parameter.
Schaut man in die Arduino Doku, dann sieht man drei Parameter.
Von denen der letzte optional ist.

Ich schließe daraus, dass bei dem verwendeten Core für ATTiny13, eben der dritte Parameter nicht optional ist, und darum mit angegeben werden muss.
Nur so lässt sich die Meldung erklären.

Der Aufwand, diesen Fehler zu beheben ist also nahe Null.
Die betreffende Deklaration findet sich übrigens in Arduino.h


Das Problem ist also nicht, dass hier irgend was "falsch eingegeben" oder abgeschrieben wurde.
Sondern, dass sich der Tiny Core nicht exakt an die Doku hält und der Benutzer sich nicht anpassen kann.

@combie: ja dann scheint er eine andere Attiny13 core zu haben, als ich mir geholt hab.

Bei meinem von hier: Attiny13 Core

den mit dem von mir genannten Core klappt es auch ohne den optionalen 3. Parameter.

Und ansonsten halt einfach als driten Parameter z.B. 100000 eingeben. Damit laufen die Sketches für die RC-Switches bei mir seit Jahren problemlos.

lg Stefan

Horge87:
Beim Flaschen des Chips bekomme ich einen Fehler.

Wie schon erwähnt, gibt es Serial auf dem ATtiny13a nicht, weshalb der Compiler einen Fehler ausgibt.

@ALLE: Für Debug-Ausgaben auf dem ATtiny85 verwende ich SoftwareSerial, was von einem veränderten Upload-Programm entgegengenommen und an den seriellen Monitor weitergeleitet wird. Die Idee ist nicht auf meinem Mist gewachsen, hilft aber manchmal enorm. Ob das auch auf einem ATtiny13a funktioniert, kann ich mangels Boarddefinition nicht testen. Bei einem ATtiny25 kommt die Meldung "Der Sketch ist zu groß".

Horge87:
Doch beim verarbeiten vom PWM-Signal des Receivers komme ich nicht weiter.

Ich habe schon Programme mit dem UNO getestet und dann ohne Debugausgaben mit kleinen Änderungen auf den ATtiny übertragen.

Beim fC gibt es Nano und ProMini mit ATmega328 für kleines Geld, dadurch spart man sich diverse Verenkungen.

agmue:
Wie schon erwähnt, gibt es Serial auf dem ATtiny13a nicht, weshalb der Compiler einen Fehler ausgibt.

@ALLE: Für Debug-Ausgaben auf dem ATtiny85 verwende ich SoftwareSerial, was von einem veränderten Upload-Programm entgegengenommen und an den seriellen Monitor weitergeleitet wird. Die Idee ist nicht auf meinem Mist gewachsen, hilft aber manchmal enorm. Ob das auch auf einem ATtiny13a funktioniert, kann ich mangels Boarddefinition nicht testen. Bei einem ATtiny25 kommt die Meldung "Der Sketch ist zu groß".
Ich habe schon Programme mit dem UNO getestet und dann ohne Debugausgaben mit kleinen Änderungen auf den ATtiny übertragen.

Beim fC gibt es Nano und ProMini mit ATmega328 für kleines Geld, dadurch spart man sich diverse Verenkungen.

Die von dir angesprochene Erweiterung verwende ich auch schon einige Zeit. Eine Beschreibung dazu findet man hier.
Was die Verwendung fertiger Controller betrifft, bin ich allerdings anderer Meinung.
Wenn man Spass am Basteln hat, sollte man das auch umsetzen und auch so klein wie möglich, siehe auch unser Projekt mit einem "MicroProMini" hier im Forum vor einiger Zeit.

Naja...

In Sachen Baugröße und Stromverbrauch, liegen der Tiny13 und der Tiny85 Kopf an Kopf.
In Sachen Ressourcenausstattung ist der Tiny85 um ein mehrfaches überlegen.

Das spiegelt sich auch im Preis wieder. ca 50Cent für einen Tiny13 und ca. das doppelte für einen Tiny85

Meine Sicht:
Wenn man auf Selbstkasteiung steht, von mir aus....

Wobei ich auch sagen muss, dass meine Serienproduktionen selten solche Ausmaße erreichen, dass diese Preisdifferenz eine Rolle spielt.

Nun, um beim RC-Switch zu bleiben, für die 2 funktionen, die der TO schalten will und dem simlen Sketch, den er da von fpw-Freunde.de hat (der ja noch um die 2. funktion erweitert werden muss) reicht ja der Attiny13 locker.
will man den Switch jedoch konfortabler z.B. Fehlerkontrolle, wählen ob tastend oder rastend schaltend oder mit mehr als 2 Funktionen dazu mit automatischem Mittenabgleich, könnte der Programmspeicher in einem Attiny13 etwas knapp werden. Da ist dann eben ein attiny25 , 45 oder attiny85 die bessere Wahl.

Wenn ich die Software für solche Switches anpasse oder erweitere, schreibe ich die auch entweder erst auf nen Nano oder so, wo ich den Serial-Monitor nutzen kann, und protiere es sobalds läuft auf den Attiny.

LG Stefan

HotSystems:
Wenn man Spass am Basteln hat, ...

... dann tut man das, wozu man Lust verspürt, das möchte ich auch niemandem ausreden. Auf Alternativen mache ich aber dennoch aufmerksam :slight_smile:

agmue:
... dann tut man das, wozu man Lust verspürt,.....

Prima, das sehe ich genauso, zumindest was unser Hobby betrifft. :wink:

Der Meinung bin ich auch... Ich habe den Chip und den programmieradapter vor ca 3 Jahren mal gekauft um für meine Drome einen Kameraauslöser zu bauen. Was sich dann aber wieder erledigt hat, weil ich eine ander Kamera verbaut habe. Und jetzt ist mir die Idee von der lichtsteuerung für den Crawler gekommen. Naja, wie den auch sei. Mit eurer Hilfe bekomme ich das schon irgendwie hin.

Horge87:
Der Meinung bin ich auch... Ich habe den Chip und den programmieradapter vor ca 3 Jahren mal gekauft um für meine Drome einen Kameraauslöser zu bauen. Was sich dann aber wieder erledigt hat, weil ich eine ander Kamera verbaut habe. Und jetzt ist mir die Idee von der lichtsteuerung für den Crawler gekommen. Naja, wie den auch sei. Mit eurer Hilfe bekomme ich das schon irgendwie hin.

Das ist auch ok, allerdings ist der ATtiny13 wohl der denkbar ungünstigste Controller für einen "Anfänger" .

Hab meine Schaltung jetzt erfolgreich zum laufen bekommen, allerdings stimmt mit dem pwm Signal irgendwas nicht. Es müsste sich eigentlich zwischen 1-2ms bewegen was ein pulseIn-wert von 1000-2000 entspricht. Ich komm bei der Mittelstellung vom Knüppel aber nur auf ca. 175. außerdem flackern die Led‘s im Übergangsbereich. Hat vielleicht jemand eine Idee woran das liegen könnte?

Evtl. Fuses für Takt/Teiler falsch? Dann geht millis bzw. Micros falsch.
Kenn mich da allerdings nicht wirklich aus.

ElEspanol:
Evtl. Fuses für Takt/Teiler falsch?

Das ist auch mein Verdacht, da ungefähr der Faktor 8 zwischen den Werten liegt.

Und wie kann man das kontrollieren bzw. Ändern?

Horge87:
Und wie kann man das kontrollieren bzw. Ändern?

Hast du die Fuses angepasst, oder einen "Bootloader" draufgepackt oder ist der total nackt ?
Mit welchem Takt hast du den geflasht ?

Um das Flackern der Leds im Übergangsbereich zu vermeiden, musst du eine Hysterese einbauen.

Geflasht habe ich mit 9600 und der Chip war nackt.

Und welche Taktfrequenz hast du angegeben ?
8 MHz ?

Horge87:
Geflasht habe ich mit 9600 und der Chip war nackt.

Der Wert "9600" ist typischerweise eine Baudrate, die bei dieser Fragestellung keine Relevanz hat.

Ich verwende IDE 1.8.6 und ATtiny45/85/4313, was ich schreibe, gilt also für diese Typen. Ob das auch für den ATtiny13a gilt, mußt Du herausfinden, wäre aber nicht unwahrscheinlich. Zum Übertragen der Programme nutze ich einen Arduino UNO mit ArduinoISP.

Wenn ich unter Werkzeuge das Board ATtiny25/45/85 wähle, erhalte ich eine Taktauswahl (rot umrandet), wo ich den gewünschten Prozessortakt aussuche.

Mittels Bootloader brennen (grün) werden die Fuses entsprechend den gewählten Einstellungen verändert und der Bootloader übertragen. Ich nutze "ATtiny Universal SpenceKode" für die ATtinys, wo ich bei manchen Boards zwischen Bootloader ja/nein wählen kann. Beim ATtiny25/45/85 ist generell kein Bootloader vorgesehen. Das bedeutet, der Menüpunkt Bootloader brennen setzt die Fuses und überträgt einen leeren Bootloader.

Wie sieht es bei Dir aus?