PWM-Signal auf Attiny13a verarbeiten.

Hallo Gemeinde,

Ich habe mir mal vor längerer Zeit einen Tiny ISP Programmer und einen Attiny13 für erste Experimente zugelegt, das hat mit einfachen Blinkprogrammen auch funktioniert. Jetzt möchte ich daraus einer Rc-schalter für die Beleuchtung meines Crawlers bauen. Doch beim verarbeiten vom PWM-Signal des Receivers komme ich nicht weiter. Beim Flaschen des Chips bekomme ich einen Fehler. Was ist an den Sketch alles falsch bzw, was muss ich ändern?

Das ist mein Sketch bis jetzt:

int RXin = 2; // Input PWM
int Ledweiss = 3; //. Rückfahrscheinwerfer
int Ledrot = 4; // Bremslicht

unsigned long number;
int signal = 0;

void setup()
{
pinMode(RXin, INPUT);
Serial.begin(9600);
pinMode(Ledweiss, OUTPUT);
pinMode(Ledrot, OUTPUT);
}

void loop()
{
number = pulseIn(RXin, HIGH);
Serial.println(number);
delay(10);

if (number > 1450 && number < 1550)
{
digitalWrite(Ledrot, HIGH);
}

else
{
digitalWrite(Ledrot, LOW);
}

if (number < 1450)
{
digitalWrite(Ledweiss, HIGH);
}
else
{
digitalWrite(Ledweiss, LOW);
}

}

Warum zeigst du uns den Fehler nicht ?

Hab den Fehler vergessen, er war in der Zeile:

Serial.println(number);

Bin grade nicht zuhause, aber ich werde ihn heute Abend nachreichen.

Beim Flaschen des Chips bekomme ich einen Fehler. Was ist an den Sketch alles falsch bzw, was muss ich ändern?

Hmmm....
Du könntest die Fehlermeldung mal lesen.
Sie verstehen.
Und dann den Fehler beheben.

Bin grade nicht zuhause, aber ich werde ihn heute Abend nachreichen.

Ja dann....

Übrigens:
Ich möchte bezweifeln, dass es für den Tiny13 eine Serial Klasse gibt.
Denn eine UART hat er nicht.

Das ist gut möglich, gibt es vielleicht noch eine ander Möglichkeit ein ein PWM-Signal einzulesen?

Häää …
Du hast ein Problem mit der Seriellen.

Nicht mit PWM oder mit dem lesen von PWM

Hi

Serial = Debug-Meldungen zum Terminal - da der ATtiny13 wohl nicht an einem PC bzw. Dessen RS232 hängt, kannst Du den ganzen Kram auskommentieren.

Selber mache ich Das so, daß ich einer globalen konstanten Variable (verbose) den Wert true oder false zuweise und vor die Serial.print... ein "if (verbose) " davor kopiere.

Beim Testen:
const boolean verbose=true;

Wenn Alles geklappt hat:
const boolean verbose=false;

(ok, in meinem Fall nicht konstant, da ich Das ggf. später im Betrieb umschalten können möchte ... vll. ...)

Das geht recht fix mit Suchen&Ersetzen
Suchen 'Serial.'
Ersetzen 'if(verbose) Serial.'
-Alle Ersetzen- klick

MfG

Ersetzen 'if(verbose) Serial.'

Da es kein Serial auf ATTiny13 gibt, wird auch das nicht kompilieren.

Es muss, in erster Linie, ersatzlos gestrichen werden.


Vielleicht gibts ja irgendwelche Funktionen/Klassen um dem Tiny13 die serielle Kommunikation bei zu biegen....

Hi

Danke - hatte ich nicht bedacht!

Dann als Kompiler-Direktive

#define verbose
...
#ifdef verbose
Serial.print...
#endif

... kA, ob man einen Mehrzeiler per Suchen/Ersetzen rein bekommt.

MfG

Da habe ich irgendwo mal einige ganz geniale Macros gesehen, wo man per define die debug-Ausgaben komfortabelst konfigurieren kann. Ich such mal.
Nutzt aber auf den Attiny auch nix. Aber vielleicht auf einem 328 entwickeln und wenn es läuft, portieren.

Hab’s gefunden:

combie:
Ich verwende diese Methode:
(habs mal mit deinen HEX probiert, tuts)

#define DEBUG Serial // debugging aktivieren

//  aus meiner debug.h entnommen
 #ifdef DEBUG
   #define debug(...) DEBUG.print(VA_ARGS)
   #define debugln(...) DEBUG.println(VA_ARGS)
   #define debugbegin(...) DEBUG.begin(VA_ARGS)
 #else
   #define debug(...)
   #define debugln(...)
   #define debugbegin(...)
 #endif
// ende debug.h

void setup()
{

debugbegin(9600);  
}

void loop()
{
 debugln(millis(),HEX);
 delay(2000);
}

Hi

Jupp, kommt bekannt vor :wink: und lässt Sich auch auf den ‘Großen’ benutzen.

MfG

Die Fehlermeldung ist:
exit status 1
’serial’ was not declared in this scope

Jetzt verstehe ich nur noch Bahnhof...

Glaube der Meldung!

Horge87:
Die Fehlermeldung ist:
exit status 1
’serial’ was not declared in this scope

Jetzt verstehe ich nur noch Bahnhof…

Welcher Sketch und welcher Controller ?

Aus den post #1

Horge87:
Aus den post #1

OK…dir wurde ja auch schon mehrfach erklärt, warum diese Meldung kommt.

Der kleine hat kein serielles Interface, somit existieren keine Befehle dazu und wenn du sie trotzdem benutzt, meckert der Compiler

Hab da nochwas gefunden:
https://fpv-freun.de/de/avr-projekte/72-rc-schalter-mit-attiny-13

Der Sketch funktioniert aber auch nicht.

Fehler:
Exit Status 1
too few arguments to funktion ’unit32_t pulseIn(unit8_t, unit8_t, unit32_t)’

Da sagt meine Glaskugel nichts dazu..

Gruß Tommy

Horge87:
Hab da nochwas gefunden:
RC Schalter mit ATTiny 13

Der Sketch funktioniert aber auch nicht.

Fehler:
Exit Status 1
too few arguments to funktion ’unit32_t pulseIn(unit8_t, unit8_t, unit32_t)’

Wenn du weiter suchst, findest du sicher noch mehr. Nur wo soll das hinführen.
Auch wenn du den Sketch fehlerhaft eingibst.