Attiny45 - mehrere IR Befehle senden

Guten Abend,
ich weiß das mein Problem nur indirekt mit dem Arduino zu tun hat, aber vielleicht könnt ihr mir ja trotzdem helfen:)

Nach längeren Versuchen habe ich es geschafft mit dem Attiny45 einen IR Code zu senden, welcher meinen Fernseher ausschaltet bzw einschaltet. Dabei nutze ich die Library von dieser Seite (http://tetalab.org/blog/librairie-ir-nec-pour-attiny85), welche ich so verändert habe das Sie auch RAW Codes senden kann.

#include "IRTinyTX.h"
unsigned int power[] = {4450,4500,550,1700,500,1750,500,1750,500,600,550,600,500,600,550,600,500,600,550,1700,550,1700,550,1700,500,600,550,600,500,600,550,600,500,650,500,600,550,1700,500,650,500,600,550,600,500,600,550,600,500,600,550,1700,550,600,500,1700,550,1700,550,1700,550,1700,500,1750,500,1750,500};
IRsend irsend;
void setup(void) 
{
  irsend.enableIROut(38); 
}

void loop(void) 
{  
  irsend.sendRaw(power,67,38); 
  delay(100);
}

Dieser Code funktioniert auch ohne Probleme auf dem Attiny45, doch wenn ich nun versuche 2 verschiedene Codes nacheinander zu senden (z.b Fernseher einschalten und Lautstärke erhöhen) funktioniert es nicht mehr. Die IR LED sendet Codes, aber der Fernseher scheint Sie nicht zu erkennen. Sobald ich 2 verschiedene Befehle senden möchte führt es zu Problemen, der gleiche Befehl hintereinander funktioniert wiederum problemlos.

...
void loop(void) 
{  
  irsend.sendRaw(power,67,38); 
  delay(1000);
  irsend.sendRaw(volume,67,38); 
  delay(1000);
}

Wenn ich das ganze mit dem Arduino teste funktioniert der Folgende Code ohne Probleme (Der Fernseher geht an und die Lautstärke wird um 1% erhöht). Könnt ihr mir dabei vielleicht helfen, oder ist es einfach nicht möglich mit dem Attiny mehrere IR Codes zu senden?

Vielen Dank

Daniel133:
Dieser Code funktioniert auch ohne Probleme auf dem Attiny45, doch wenn ich nun versuche 2 verschiedene Codes nacheinander zu senden (z.b Fernseher einschalten und Lautstärke erhöhen) funktioniert es nicht mehr. Die IR LED sendet Codes, aber der Fernseher scheint Sie nicht zu erkennen. Sobald ich 2 verschiedene Befehle senden möchte führt es zu Problemen, der gleiche Befehl hintereinander funktioniert wiederum problemlos.

Hi,

das könnte gut dran liegen, dass Du das Toggle-Bit im Befehlsbyte nicht korrekt setzt. Da ich nicht weiß, um welche Geräte es sich handelt oder welche Codes Du sendest, kann ich nichts genaueres dazu sagen. Google mal nach "ir code toggle bit".

Gruß,
Ralf

Daniel133:
unsigned int power[] = {4450,4500,550,1700,500,1750,500,1750,500,600,550,600,500,600,550,600,500,600,550,
1700,550,1700,550,1700,500,600,550,600,500,600,550,600,500,650,500,600,550,1700,500,650,500,600,550,
600,500,600,550,600,500,600,550,1700,550,600,500,1700,550,1700,550,1700,550,1700,500,1750,500,1750,500};

Deine 67 Integer-Variablen im Array belegen schon mal 134 Bytes RAM-Speicher.

Der Attiny45 hat 256 Bytes RAM-Speicher.

Frage: Wieviel mal kann man wohl 134 Bytes RAM in 256 Bytes RAM hineinpacken, so dass für den gesamten Rest des Programms auch noch etwas RAM-Speicher übrig bleibt, damit das Programm noch laufen kann?