Gefunden für attiny2313 timer programmieren - Zum Elektronik Forum






1 - PWM mit Attiny2313 will nicht so ganz -- PWM mit Attiny2313 will nicht so ganz




Ersatzteile bestellen
  Hi!
Weiß jemand, warum Bascom bei diesem einfachen Programm den dritten PWM-Kanal nicht ansteuert?

Code : '###############################################################
'## Grundgerüst eines BASCOM- Programmes für Multi2313- Board ##
'###############################################################

'Den verwendeten Mikrocontroller nennen:
$regfile = "attiny2313.dat"

'Belegungsplan des Controllers:
'PA0 Lochrasterfeld
'PA1 Lochrasterfeld
'PA2 ISP/EXT Pin5
'PB0 ISP/EXT Pin3
'PB1 Lochrasterfeld
'PB2...
2 - 10 Relais per Funk ansteuern -- 10 Relais per Funk ansteuern
Bei einem Meter und freier Sicht auf den Empfänger würde ich ja IR nehmen, das ist billig, unkritisch und es gibt unendlich viele fertige Fernbedienungen.
Die haben zwar alle keine genau Null Milliampere Standbyverbrauch, aber knapp darüber .

Voraussetzung ist, dass du weißt, wie man einen µC programmiert.

Nimmt man den RC5-Kode als Grundlage, bei dem ca. alle 64 Millisekunden ein Datagramm geschickt wird, kann man in der Tat sowas wie eine Dauerdruck-Auswertung realisieren.
Dazu muss man bloß einen Timer mit einer geringfügig höheren Periodendauer laufen lassen - sobald keine Datagramme mehr kommen, schaltet man den angeschalteten IO-Pin wieder ab.


µC: ATmega8 oder ATtiny2313
Empfänger: TSOP1136
Dekoderprogramm: kann ich dir schicken
Fernbedienung: RC5-fähig

Edit:
@Peter
„Besser wäre hier Halbleiter zu verwenden!“

Hängt allerdings auch von den Signalen ab.
Wenn es z.B. Audiosignale sind, kann es einfacher sein, Signalrelais zu nehmen.
Je nach Bedingungen (Frequenz, keine galv. Trennung, max. Amplitude und Offset, etc.) könnte man auch Analogmultiplexer nehmen...



[ Diese Nachricht w...








3 - Temperatursensor, weitere Schaltungen über RS232 -- Temperatursensor, weitere Schaltungen über RS232
Hallo zusammen,

hier wie besprochen, der Code für den Temp-Sensor, ist momentan
noch für den Attiny2313 konfiguriert.

Hinweise auf die Quelle habe ich leider nicht mehr gefunden, kann auch
gut sein, dass ich das selbst nach Datenblatt herunterprogrammiert
habe. Sooo besonders spannend ist der Code auch nicht.

Hinweise:
* die Software geht davon aus, dass nur ein Sensor am Bus hängt, es
werden keine einzelnen Sensoren adressiert. Irgendwo hätte ich aber
noch die Routinen für Multi-Slave.

* es werden die Ports B0 = GND, B1 = DATA und B2 = Vcc konfiguriert.
Wenn der Atmega32 gesteckt ist, kann man den Sensor in den ansonsten ungenutzten
Sockel IC3 ( Attiny2313 ) Pin 12(Gnd) ,13(Data) ,14(Vcc) stecken.

* Prozessor mit Ponyprog auf 8MHz fusen

* COM auf 19k2 einstellen

* die Timer-Register könnten beim Mega32 leicht anders heissen.

Das Programm ist momentan so gepatched, dass ständig Messungen
getriggert werden ( Kommando "S" wird simuliert ).

Zum Teil sind noch Kommentare und auskommentierter Code aus anderen Projekten
enthalten, bitte einfach ignorieren. Ich wollte da jetzt nicht lange dran
rumeditieren.

Gruß
Stefan



4 - Frequenzgenerator 0.5Hz - 4.2khz Ua=5V -- Frequenzgenerator 0.5Hz - 4.2khz Ua=5V

Zitat :
Esko hat am 31 Mai 2007 17:09 geschrieben :
Achsooo es geht nicht ums erzeugen des Signals sondern ums einlesen.
Das ganze wäre doch billiger (und volldigital) über einen Inkrementalgeber und eine Anzeige realisiert.

Zitat : Der Timerausgang kann bis zu 16Bit Auflösung haben, das sind sicher genug.
Der OP will doch nur ein Rechtecksignal. Dafür ist die Auflösung doch wurscht.


Ähm ...
billiger als ca. 3 Euro? (1.50 für ATtiny2313 und ca. 1.50 für Poti)

Die 16 Bit sind der max. Zählerumfang (=Teilerverhältnis) für den Timer...
...
5 - Idle und Sleep -- Idle und Sleep
Dein Code sieht so aus, als ob's BASCOM wäre (da bin ich nicht der Profi). Aber es gibt eine Konstante, die sich "Timervorgabe" nennt... ich vermute, dass damit die Dauer der Zeit zwischen den Interrupts bestimmt wird. Diesen Wert müsste man erhöhen, damit nicht so oft der Interrupt ausgelöst wird.
Logischerweise muss man dann aber auch den Sekundenzähler nicht um 1 erhöhen, sondern um den angepassten wert, also z.B.: um 2, wenn durch die (neue) Konstante eine Zeit von 2 Sek. zwischen den Interrupts bestimmt.
Weiter oben wurde schon erwähnt, dass durch Betrieb mit einem "niederfrequenten" Quarz der Stromverbrauch ebenfalls drastisch reduziert wird, was aber auch eine Anpassung der Konstanten für den Timer impliziert - möglicherweise kannst Du dann die Sekunden ganz vergessen und einen Minuten - Timer aufbauen - 59 mal weniger Interrupts, aber auch die Reaktionszeit auf Ausfall wird entsprechend schlechter!

Nebenbei bemerkt:
Der ATtiny2313 hat Pins, welche einen Interrupt auslösen können, wenn sich an Ihnen der Pegel ändert ... wäre das nicht eine Möglichkeit die Netz/Batt Umschaltung zu realisieren?
...
6 - 3 x PWM in Bascom -- 3 x PWM in Bascom
Du hast dich verlesen, der AtTiny2313 hat vier (4) PWM-Kanäle, verteilt auf zwei Timer. Anschlüsse sind PD5 und PB2,3,4.
Wie du aber auf "Timer0 oder Timer2" kommst,
Ich hab den Dingern zwar bisher nur Schritt für Schritt gesagt was sie tun sollen (kurz Assembler), aber bei mir hießen die beiden vorhandenen immer Timer0 und Timer1.
Was soll der Chip denn sonst noch machen.
Wenn es mehrere RGB-Kanäle werden sollen und der Controller praktisch nichts anderes machen soll, kann man den PWM-Generator auch Softwaretechnisch emulieren. ...
7 - Mehrere Interrupts in \'C\' mit WINAVR bearbeiten -- Mehrere Interrupts in \'C\' mit WINAVR bearbeiten
Hi,
inzwischen hab' ich schon einige einfache Problemchen mit dem ATtiny2313 in 'C' gelöst.
Jetzt stehe ich aber vor folgendem (vereinfachten) Problem:
1) Lichtschranke soll eine Stopuhr steuern.
2) LCD (4*16 / 4*20) soll diverse Zeiten anzeigen

Punkt 2 ist schon fertig, für Punkt 1 benötige ich jedoch 2 Interrupts:
1. Timer (läuft schon mit 1/100 sec Auflösung)
2. Interrupt bei Änderung des Signalpegels an einem Eingang.

Konkrete Fragestellung:
in meiner Interrupt - Routine des Timers (s.u.)
sei(); // Globalen Interrupt freigeben
TIMSK =_BV(OCIE1A); // Vergleichswertüberlauf Interrupt einschalten
TCCR1B = _BV(CS10); // Vorteiler = 1
OCR1A = tim_cnt; // Zeit einschreiben

wird mittels "sei();" der Irq global freigegeben.

Wie muss dan meine Routine für den Pin-change Interrupt (generell) aussehen?

Mein Ansatz sieht so aus, aber klappt das?
SIGNAL(SIG_PCINT)
{
// Daten einlesen INPMASK = 0x10 für PORTB.4
sigi = inp(PINB) & INPMASK;
if (sigi != INPMASK)
{
// fallende Flanke
}
else
{
// steigende Flanke
}
}


... und wie sieht die notwendige Initialisierung dann aus?

Kann mir jemand...
8 - Interrupts in \"C\" bei Atmel -- Interrupts in \C\ bei Atmel
Zuerst die gute Nachricht:
Meine ersten Schritte mit den Atmels (Attiny2313) waren schon erfolgreich, hab' auch schon etwas programmiert und es funkt!
AAAAABER:
Total unproffessionell in einer langen Schleife als main()....
Das muss besser werden!

Eine der grundlegenden Funktionen sind Beispielsweise viel besser in einem zyklischen Interrupt aufgehoben ... (Ausgabe von PWM - Signalen).

Und jetzt klemmts: (Oder bin ich einfach zu doof???)
Ich hab's noch nicht kapiert, wie ich mit WINAVR einen Interrupt in "C" programmiere.
Eigentlich sind 2 Probleme zu lösen:
a) Timerprogrammierung (init)
b) Zyklischen Interrupt durch Timer bearbeiten.

Gibt's ein möglichst einfaches "howto" im Netz, welches mir weiterhilft?
... oder hat jemand von Euch einen Tip?

Wahrscheinlich fehlt nur ein kleiner Schubs, um mein Verständniss dafür in die richtige Rille zu bringen...
...

Nicht gefunden ? Eventuell gibt es im Elektroforum Transistornet.de für Attiny2313 Timer Programmieren eine Antwort
Im transitornet gefunden: Attiny2313 Timer Programmieren


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 13 Beiträge im Durchschnitt pro Tag       heute wurden bisher 30 Beiträge verfasst
© x sparkkelsputz        Besucher : 184103479   Heute : 55150    Gestern : 48733    Online : 286        14.5.2025    21:08
4 Besucher in den letzten 60 Sekunden        alle 15.00 Sekunden ein neuer Besucher ---- logout ----su ---- logout ----
xcvb 7x ycvb
0.016016960144