Gefunden für avr timer blinken - Zum Elektronik Forum |
| 1 - Spannungswächter aus Resten ;-) -- Spannungswächter aus Resten ;-) | |||
| |||
| 2 - Hilfe:Klartraum-Maske -- Hilfe:Klartraum-Maske | |||
| So, ich habe mal ein bisschen was programmiert. Ich habe mich
dann doch für den Attiny13A entschieden, weil sich bei dem der Watchdog einfacher nutzen lässt ( WD-Interrupt statt Reset ). Der Spannungsbereich ist mit 1.8V..5.5V auch sehr entgegenkommend. Es werden 2 Ports für die LEDs genutzt. Normalerweise würde das auch ein Port schaffen, wenn die jeweils relativ hochohmig angebunden werden. Strombilanz: Warte 6h auf REM-Phase 4.5µA Led-Blinkend mit Watchdog (1800ms*4.5µA + 200ms * 5mA)/2s = ~ 500µA )* Power-Down-Mode nach REM-Blinken 120nA Betrieb mit einer CR2032, die grob über 200mAh verfügen sollte (das anfängliche 3x-Blinken als Start-Feedback vernachlässige ich mal) : 6.0h Warten auf REM 4.50uA = 270 µAh 0.5h aktiv blinken (0.2/1.8) 500.00µA = 250 µAh 17.5h Warten auf nächste Nacht 0.12µA= 2.1µAh = 522µAh Tagesverbrauch Bei 200mAh sind das -> 383 Tage, die Batterie hält also ein gutes Jahr bei täglicher Anwendung. Wenn es nicht angewendet wird, ist der Idle Strom so gering, dass die Batterie in diesem Zustand theoretisch 190 Jahre hält. Es lohnt sich also nicht mehr, in diesem Bereich zu optimieren oder sich was an... | |||
3 - ATmega8515 mit STK-500 und AVR-Studio 4 -- ATmega8515 mit STK-500 und AVR-Studio 4 | |||
| @GableGuy200
Spare dir bitte zukünftig die dreißig Fragezeichen, eines reicht vollkommen aus. Edit: was genau möchtest du denn wissen? Wie man in C programmiert, wie man in C AVRs programmiert, wie man mit dem Studio in C programmiert, wie man das Programm in den µC bekommt oder wie man LEDn und Taster programmtechnisch so verbindet, dass man die LEDn mit Tastern schalten kann? Eswas präziser wäre gut .
@Kleinspannung: Zitat : Schleife: -port pin toggeln -kurze pause -port pin toggeln Toggeln ist denglisch für invertieren. Würde man dieses Programm so umsetzen, würde kein wirkliches sichtbares Blinken erzeugt. So schon eher: Schleife: Bit umdrehen Warten Schleife Ende. In C kann man das auf exakt 101 Möglichkeiten bringen, eine einfache ohne Timer und ISR wäre die hier: | |||
| 4 - C oder Assembler was ist besser? -- C oder Assembler was ist besser? | |||
| Hallo,
das ist eine schwierige Frage, mit Assembler lernt man sehr gut den Aufbau des Controllers kennen und kann so seine Programme optimal anpassen. Bei größeren Programmen wird es mit Assembler aber schnell unübersichtlich, außerdem lassen sich Programmteile und -routinen in C leichter in weiteren Programmen wiederverwenden, so dass man nicht jedes Mal das Rad neu erfinden muss. Ich persönlich habe mit Assembler für AVR angefangen, bin aber nach einer Weile aus obigen Gründen auf C umgestiegen. Ich würde Dir empfehlen, Dich erstmal mit dem Datenblatt des Controllers zu beschäftigen und vielleicht das ein oder andere kleine Programm in Assembler zu schreiben, z.B. eine LED mit einem Timer blinken lassen, Daten per RS232 zu empfangen und auf einigen LEDs auszugeben etc. Die Bezeichnungen der einzelnen Steuerregister für Timer und Schnittstellen etc. wirst Du schließlich auch in C kennen müssen. Danach würde ich mich aber verstärkt auf C konzentrieren, da die Sprache hardwareunabhängig ist und sie Dir früher oder später an vielleicht ganz anderer Stelle wieder begegnen wird. Was den oft angesprochenen Geschwindigkeitsvorteil von Assembler angeht: Ein guter C-Compiler wie der AVR-GCC für die AVR-Mikrocontroller erzeugt von sich aus schon recht guten Code... | |||
| 5 - delay mit C bei AVR-Programmierung -- delay mit C bei AVR-Programmierung | |||
| Hallo,
vielleicht habe ich auch einfach das ganze nicht genau verstanden. Die LED soll also symbolisieren das der AVR noch läuft. Bei der Steuerung mit dem Delay wäre es aber doch egal ob der AVR noch läuft oder sich aufgehangen hat. Ob er nun hängt oder 100% seiner Rechenzeit zum blinken einer LED aufbringt wäre doch gleich, was anderes kann er eh nicht mehr machen. Besser wäre da wohl dann echt ein Timer oder aber den Watchdog (je nach AVR) zu bemühen. Gruß Simon ... | |||
| 6 - Mein Kampf (Mit Bascom/Meine Probleme damit) -- Mein Kampf (Mit Bascom/Meine Probleme damit) | |||
| Moin,
also ich kann dir für den Anfang empfehlen, arbeite mit dem Buch von Roland Walter und der Hilfe, es wird auch des öfteren im Buch darauf hingewiesen. Falls du mit dem Englisch deine Probleme hast gibt es auch ein Buch, die komplette Hilfe von Bascom in Deutsch übersetzt. Aber ich bin auch nicht wirklicht gut in Englisch, versteh aber trotzdem ganz gut das was in der Hilfe steht, durch die Beispiele die dabei sind, oder auch durch Wörterbuch bzw. Sprach-Tools. Link: http://bascom-avr.de/Buch.aspx?ID=2 Hier mal ein Link um in Basic einzusteigen, da bekommst du so sachen wie schleifen etc. erklärt, pass aber auf in Bascom ist es zum teil bisschen anders, schau dann im Notfall noch einmal in der Hilfe nach. Link: http://www.tutorials.at/ Zum Thema LCD steht alles nötige auch in der Hilfe, mit kompletten Code Beispiel. Einfach kopieren, und deinem Controller anpassen und dann mit dem Code spielen, dass du das gefühl dafür bekommst. Das kannst du auch mit anderem Code machen, z.B. vom AD-Wandler oder Timer... | |||
| 7 - LED-Blinklicht mit ATS2313 mittels Timer -- LED-Blinklicht mit ATS2313 mittels Timer | |||
| Hallo @all,
dank Jornbytes Hilfe, bin ich mit meinem LED-Blink-Programm mittels Timer weitergekommen. Da normale, auf Bremsschleifen basierende Programme, die Prozessorzeit unnötig verschwenden ist es ratsamer die Blink-Routinen über den eingebauten Timer laufen zu lassen! Im Folgenden hier Jornbytes Erklärung: Zitat : Also... In den Register/Bit Definitions for the AT90S2313 finest du am Ende folgende Zeilen: .equ INT0addr=$001 ;External Interrupt0 Vector Address .equ INT1addr=$002 ;External Interrupt1 Vector Address .equ ICP1addr=$003 ;Input Capture1 Interrupt Vector Address .equ OC1addr =$004 ;Output Compare1 Interrupt Vector Address .equ OVF1addr=$005 ;Overflow1 Interrupt Vector Address .equ OVF0addr=$006 ;Overflow0 Interrupt Vector Address .equ URXCaddr=$007 ;UART Receive Complete Interrupt Vector Address .equ UDREaddr=$008 ;UART Data Register Empty Interrupt Vector Address .equ UTXCaddr... |
|
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! gerechnet auf die letzten 30 Tage haben wir 9 Beiträge im Durchschnitt pro Tag heute wurden bisher 2 Beiträge verfasst 5 Besucher in den letzten 60 Sekunden alle 12.00 Sekunden ein neuer Besucher ---- logout ----su ---- logout ---- |