Dann versuche doch mal den Wert für a direkt zu schreiben - also z.b. 10 oder 100 - und schaue ob sich was entsprechendes tut.
Versuche mal einen einfacheren Code zu schreiben. Und poste den dann bitte komplett.
Momentan scheint noch was am Code zu fehlen. Mindestens ggf eine "}" hinter dem "delay(delayval);"
Kennst du dieses Papier?
Kapitel 7 und 10 sollten dich interessieren: http://www.netzmafia.de/skripten/har...erhandbuch.pdf
Dir ist klar das der Arduino Uno einen ATmega328P_(Link auf Reichelt) verwendet, der laut Datenblatt 6 PWMs erzeugen kann. Der ATiny84a_(Link auf Reichelt) aber nur 2 PWMs erzeugen kann.
Und es allein aus diesem Grund schon Probleme mit von dir gezeigte Ansteuerung geben wird.
Ich befürchte dann bist Du mit der Art wie du Microcontroller programmierst schon an Deine Grenzen angekommen.
Denn so funktioniert es bestenfalls mit Glück, aber gekonnt ist was anderes.
Wenn Du grundsätzliches interesse hast und einen ISP-Programmer besitzt der ggf mit Bascom zusammenarbeitet dann würde ich dir die Testversion von Bascom empfehlen.
Es ist ähnlich aufgebaut wie Arduino-C was Funktionen betrifft, nur ... *hüstel* es ist eben ein Basic-Dialekt. ABER man kann seinen Chip wenn er von Bascom unterstützt wird, selbst im Programmcode auswählen.
Ich bin mir nur grade nicht sicher ob das grundsätzlich mit der Arduino-IDE auch möglich ist. Und wenn doch, dann müsste es ja möglich sein ein Programm auch direkt passned für einen Tiny zu schreiben ohne "einfach nur die Pins" im Code für einen Mega zu ändern.
Viele Grüße
Jörg
Lesezeichen