Hallo zusammen,
bin neu hier im Forum, weil ich ein Problem mit der Programmierung eines ATTiny13 habe.
Ich habe für ein Funkgerät eine Rogerpiep-Schaltung nachgebaut (funktioniert auch)
http://www.mydarc.de/dl1rlb/programmierung.html
Dieser Rogerpiep ist aber dauerhaft eingeschaltet, sofern man ihn nicht als optional steckbares Zwischenmodul aufbaut.
Den Originalcode habe ich inzwischen etwas abgewandelt und bei Drücken noch einen einleitenden Doppelsummton inplementiert.
Also so:
Sendetaste drücken - "brrr-brrr" - (Gespräch führen) - Sendetaste loslassen - "piep"
Zunächst hatte ich durch den zusätzlichen Vor-Ton plötzlich ein Timingproblem, da die Töne nicht zuverlässig kamen bzw. manchmal ausblieben.
Durch Vergrößern des Kondensators an PinB.4 von 100nF auf 1µF war das Problem beseitigt.
Je nach zeitlichem Zusammentreffen der Änderung des Sendetastenstatus mit der Programmloop kam das System wohl manchmal aus dem Tritt !?
Durch den verzehnfachten Kondensatorwert ergibt sich wohl eine bessere "Entprellung" und alles läuft zuverlässig.
Nun wollte ich den Programmiercode noch etwas "verfeinern", da ich noch einen "richtigen" EIN-/AUS-Schalter am Port B.3 angebracht habe, um den Bausatz nicht mechanisch trennen zu müssen.
Diesen Schalterstatus möchte ich nun abfragen und davon die Ausgabe oder Unterdrückung der Pieptöne abhängig machen.
Das klappt zwischenzeitlich auch, aber nicht immer zuverlässig !
Als hätte ich schon wieder ein Timingproblem !!??
Am PortB.3 sitzt inzwischen auch ein 1µF Kondensator nebst Schalter nach Masse (also vom Prinzip identisch zur Sendetaste an PortB.4, nur eben von Zustand mehr "statisch" und nicht so "kurz" verwendet wie die Sendetaste).
Der Intro-Ton wird zuverlässig abgeschaltet, aber der End-Rogerbeep wird (zwar selten, aber immerhin) dennoch unterdrückt.
An was kann das liegen ?
Das Programm durchläuft doch permanent akribisch die Loop und arbeitet Zeile-für-Zeile und Zustand-für-Zustand ab ?
Wo kann da (unregelmässig) etwas "verschluckt" werden ? Das verstehe ich nicht.
Besten Dank schon jetzt für Eure Antworten.
Gruß
Jochen
bin neu hier im Forum, weil ich ein Problem mit der Programmierung eines ATTiny13 habe.
Ich habe für ein Funkgerät eine Rogerpiep-Schaltung nachgebaut (funktioniert auch)
http://www.mydarc.de/dl1rlb/programmierung.html
Dieser Rogerpiep ist aber dauerhaft eingeschaltet, sofern man ihn nicht als optional steckbares Zwischenmodul aufbaut.
Den Originalcode habe ich inzwischen etwas abgewandelt und bei Drücken noch einen einleitenden Doppelsummton inplementiert.
Also so:
Sendetaste drücken - "brrr-brrr" - (Gespräch führen) - Sendetaste loslassen - "piep"
Zunächst hatte ich durch den zusätzlichen Vor-Ton plötzlich ein Timingproblem, da die Töne nicht zuverlässig kamen bzw. manchmal ausblieben.
Durch Vergrößern des Kondensators an PinB.4 von 100nF auf 1µF war das Problem beseitigt.
Je nach zeitlichem Zusammentreffen der Änderung des Sendetastenstatus mit der Programmloop kam das System wohl manchmal aus dem Tritt !?
Durch den verzehnfachten Kondensatorwert ergibt sich wohl eine bessere "Entprellung" und alles läuft zuverlässig.
Nun wollte ich den Programmiercode noch etwas "verfeinern", da ich noch einen "richtigen" EIN-/AUS-Schalter am Port B.3 angebracht habe, um den Bausatz nicht mechanisch trennen zu müssen.
Diesen Schalterstatus möchte ich nun abfragen und davon die Ausgabe oder Unterdrückung der Pieptöne abhängig machen.
Das klappt zwischenzeitlich auch, aber nicht immer zuverlässig !
Als hätte ich schon wieder ein Timingproblem !!??
Am PortB.3 sitzt inzwischen auch ein 1µF Kondensator nebst Schalter nach Masse (also vom Prinzip identisch zur Sendetaste an PortB.4, nur eben von Zustand mehr "statisch" und nicht so "kurz" verwendet wie die Sendetaste).
Der Intro-Ton wird zuverlässig abgeschaltet, aber der End-Rogerbeep wird (zwar selten, aber immerhin) dennoch unterdrückt.
An was kann das liegen ?
Das Programm durchläuft doch permanent akribisch die Loop und arbeitet Zeile-für-Zeile und Zustand-für-Zustand ab ?
Wo kann da (unregelmässig) etwas "verschluckt" werden ? Das verstehe ich nicht.
Besten Dank schon jetzt für Eure Antworten.
Gruß
Jochen