Gefunden für avr timer gegentaktwandler - Zum Elektronik Forum |
1 - Spannungswächter aus Resten ;-) -- Spannungswächter aus Resten ;-) | |||
| |||
2 - PID-Regler zur Drehzahlsteuerung eines Motors -- PID-Regler zur Drehzahlsteuerung eines Motors | |||
Also, ich war wohl hauptsächlich zu ungeduldig, denn die obigen Schritte habe ich schon angewendet gehabt (kenne ich vom Quadcopter tunen). Aber nach einigem herumprobieren funktioniert es jetzt ganz gut, außer bei recht niedrigen Drehzahlen.
Das schwierigste war fast, zuerst überhaupt die richtigen Größenordnungen der PID-Werte zu finden. Es hat natürlich auch nicht geholfen, dass ich in seltenen Fällen einen Overflow in der Berechnung hatte. Ich wollte möglichst mit Integer- bzw. Fixpunkt-Arithmetik arbeiten, da ich Floating-Point-Zahlen auf einem 8bit-AVR schon fast pervers finde ![]() Was anderes als numerische Differentiation ist auf einem AVR glaube ich auch nicht möglich. Die Messgröße sollte aber so gut wie rauschfrei sein, da ich die Zeit zwischen zwei Tachopulsen auf 0,5µs (2MHz-Timer) genau messe (davon ausgehend, dass der Interrupt nicht grade durch einen anderen blockiert ist), und daraus auf UPM umrechne (mit 100Hz außer es ist in den letzten 10ms kein einziger Tachopuls aufgetreten, dann wird gerechnet sobald der nächste Puls kommt). Ganz ohne D habe ich auch probiert, aber da schwingt die Steuerung zu stark über. Eines, was ich hineinpro... | |||
3 - X-Kondensator wird warm -- X-Kondensator wird warm | |||
Ich steuere einen Waschmaschinenmotor mit einem IGBT an (Drehzahlregelung über AVR; work in progress ![]() (siehe auch hier: Waschmaschinenmotor anschließen/regeln) Zur Zeit ist die Versorgung noch 32V DC, am Ende möchte ich aber 230VAC gleichgerichtet verwenden. Dazu habe ich einerseits nach dem Gleichrichter Elkos (2ser x 2par x 330µF@200V). Außerdem habe einen 330nF X-Kondensator parallel dazu (Intention war damit die Spitzen der PWM abzudecken, bis die Elkos "nachliefern"). Alles um später die 325VDC auszuhalten. Das eigenartige ist jetzt: der X-Kondensator (mir ist klar, dass dieser in diesem Aufbau nicht mehr die Funktion eines X-Kondensators hat) wird fast genauso warm wie der IGBT (beides ist aber problemlos mit den Fingern zu berühren), wenn der Motor einige Zeit (2-3 Minuten) gelaufen ist. Die PWM-Frequenz ist ca. 60kHz (mit der gehe ich noch runter; hat sich nur durch mal schnell eingestellten AVR-Timer so ergeben). Der Motor zieht ungeregelt so um die 700-800mA bei den 32V. Ist ein X-Kondensator nicht als Glättungskondensator geeignet?... | |||
4 - Mikrowellekontroller oder konventionell? -- Mikrowellekontroller oder konventionell? | |||
Grundsätzlich ist so nen µC nichts anderes als ein Mikroprozessor, der Recheneinheit, Arbeitsspeicher, Programmspeicher und z.T. Peripheriebausteine bereits integriert hat.
Da gibts von vielen Herstellern unterschiedliche Familien, im Hobbybereich sind aber Atmel AVR und Microchip PIC ziemlich weit vorne dabei, weil billig und einfach zu benutzen. Um da was anzuschließen kannst du im simpelsten Fall die einzelnen I/Os setzen bzw. auslesen. Manche davon sind mehrfach belegt und können anstelle des digitalen I/O auch Funktionen wie A/D-Wandler oder PWM Ausgang übernehmen. Oft sind auch diverse serielle Schnittstellen wie UART, SPI oder I²C integriert. Dazu gibts dann nen Haufen Register, Timer und Interrupts um auf Ereignisse zu reagieren und das Zeug zu steuern. Als Betriebsspannung sind 3,3 und 5V gängig, viele Chips können aber auch mit einem größeren Spannungsbereich umgehen. (AVR je nach Takt und Modell zwischen 1,8 und 5,5V.) Die spucken dann TTL-kompatible Pegel aus die man direkt weiter verwursten kann, oder z.b. mit nem MAX232 auf klassische V.24 umsetzen. Die Leistung reicht dabei aus um LED oder Kleinsignalransistoren direkt anzusteuern. Aus dem Kopf wären das beim AVR 20mA pro Portpin, bzw. 200mA für den ganzen Chip - kann mittlerweile auch... | |||
5 - 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... | |||
6 - Einstellbarer Timer mit 7 Segment -- Einstellbarer Timer mit 7 Segment | |||
Hallo,
ich möchte für meinen UV Belichter einen Timer bauen. Er sollte so simpel wie möglich aufgebaut sein. Ich möchte 4 7-Segment Anzeigen verwenden. Die Zeit sollte über ein Poti einstellbar sein. Mit einem Knopf soll die Belichtung gestartet/unterbrochen werden können. Hab im Internet leider nichts passendes gefunden. Am liebsten wäre mir ein Bausatz. Das Ganze sollte mit einem PIC realisiert werden, im Internet habe ich nur Pläne mit einem AVR gefunden. ... | |||
7 - Finde den Fehler im Programm nicht (avr-gcc) -- Finde den Fehler im Programm nicht (avr-gcc) | |||
Hallo,
ich hab mal wieder ein Problem. Und zwar hab ich nach längerer Zeit wieder mit dem Microcontroller programmieren angefangen. Aber das erstellte Programm will nicht laufen. Compilieren geht. Aber selbst wenn ich Interrupts nicht einschalte, scheint das Programm nicht durch die Hauptschleife zu laufen. Momentan bin ich ziemlich ratlos und würde euch bitten mal kurz drüberzusehen. Plattform ist ein Atmega8 der auf internen Takt 1 Mhz laufen soll. Viele Dank, Peter PS: eingefügte Codeschnipsel in der Main-Schleife werden scheibar willkürlich ausgeführt. Es ist nicht ersichtlich an wlecher Stelle der Controller abstürzt. Code : | |||
8 - ATMEGA32-16PU Programm Auslesen möglich? -- ATMEGA32-16PU Programm Auslesen möglich? | |||
Sofern der Hersteller/Programmierer der Software den AVR nicht gegen Auslesen geschützt hat, ist das mit einem Programmer wie z.B. dem mySmartUSB-Light möglich (jeder andere Programmer kann das auch, aber der genannte ist sehr gut).
Ist der AVR dagegen gesichert, hast du keine Chance. Der Programmer gibt dir Binärdaten aus, die jagst du durch einen Disassembler wie z.B. avr-objdump der GCC-Toolchain für AVRs. Theoretisch kann man diesen Kode so manipulieren, dass die Zeit länger wird. Praktisch sollte man AVR-Assembler gut kennen und auch ein wenig Zeit mitbringen. Als erstes würde ich die ISR-Vektoren der vorhandenen Timer suchen, eventuell wird die Geschichte dort erledigt. ... | |||
9 - Fußgängerampel - Cius3 -- Fußgängerampel - Cius3 | |||
Offtopic :Was ist das denn bitte für ein Overkill? ![]() Sowas simples bekommt doch sogar ein mit BASCOM programmierte AVR hin, mit gleichzeitiger Visualisierung der internen Timer auf nem separaten Display. PS: Cius.... hat das was mit Wännä zu tun? ![]() [ Diese Nachricht wurde geändert von: ElektroNicki am 16 Jan 2012 0:39 ]... | |||
10 - TLC5940: welches Rastermaß hat das NT-Gehäuse? -- TLC5940: welches Rastermaß hat das NT-Gehäuse? | |||
Hi!
Um einem AVR etwas Arbeit abzunehmen und nicht alle Timer verballern zu müssen möchte ich ihm folgenden Kontrollör zur Seite stellen: http://www.ti.com/lit/ds/symlink/tlc5940.pdf Jetzt frage ich mich allerdings, ob das NT-Gehäuse das normale 2,54mm-Pinraster hat oder so eine bescheuerte Sonderform. Das Datenblatt erwähnt dieses Gehäuse bei den Maßzeichnungen gar nicht, so leicht kann man es sich als Hersteller natürlich auch machen >.< Danke im Voraus... PS: Falls meine Befürchtung stimmt: kennt jemand eine Alternative? Auf die Auflösung kommts mir gar nicht so an, 8 Bit reichen locker, ne eingebaute Stromregelung ist auch nicht wichtig. Es sollten aber schon mindestens 4 Kanäle sein. [ Diese Nachricht wurde geändert von: ElektroNicki am 3 Nov 2011 22:22 ]... | |||
11 - AVR-Assemblercode von Atmega88 auf -8 umstricken -- AVR-Assemblercode von Atmega88 auf -8 umstricken | |||
Hi!
Ich möchte mir ein Elektorprojekt nachbauen. Dafür wird ein Atmega88 verwendet, ich habe aber nur den Atmega8 hier. Ich habe schon etwas über die Unterschiede gefunden, blicke aber trotzdem nicht ganz durch. http://www.gaw.ru/pdf/Atmel/app/avr/AVR094.pdf Z.B. meckert der Compiler über "out TCCR0A,r16" Ist irgendwie klar, der Atmega8 hat ja nur einen Ausgang vom zweiten Timer etc. Aber wie schreibe ich das um? Geht das überhaupt, oder war der Atmega88 _statt_ dem 8er nötig? Wäre schön, wenn mir jemand weiterhelfen würde ![]() Code : | |||
12 - PWM-Signal erkennen und weiterleiten -- PWM-Signal erkennen und weiterleiten | |||
Hallo,
Ich habe vor ein PWM-Signal zu modifizieren. Es ist im 20ms Takt mit je 1-2 ms Impulslänge. Daten: Atmega644 16Mhz Quarz AVR-GCC Nun habe ich mir folgendes ausgedacht: Wenn ich den Impuls länger als auch kürzer machen möchte, muss ich bevor ich etwas mache, den ganzen Takt "einfangen". Dazu würde ich zum erfassen, externe Interupt(s) und zum weiterleiten, Timer verwenden wollen. Nun frage ich mich wie ich einen ganzen Takt erkennen soll. Wenn ich auf steigene Flanke triggere, dann bekomme ich den Anfang mit und wenn ich auf fallende Flanke gehe, nur das Ende. Kann man z.B. auf INT0 sowohl steigende, als auch fallende Flanke gleichzeitig erkennen? Oder gibt es da bessere Wege dies zu realisieren? Gruß ... | |||
13 - Rückwärtszähler -- Rückwärtszähler | |||
Hallo,
ich habe gerade zwei Links geschickt bekommen die evtl. auch dein Problem lösen könnten. http://www.blafusel.de/misc/timer.html http://www.avr-projekte.de/timer.htm#Download Bei beiden ist alles von A bis Z aufgemalt ![]() Dirk [ Diese Nachricht wurde geändert von: dr.dirk am 23 Nov 2010 14:37 ]... | |||
14 - Selbstbau eines Lichtweckers mit digitaler Steuerung -- Selbstbau eines Lichtweckers mit digitaler Steuerung | |||
Schönen guten Tag
Ich habe bei meinem Projekt schon gute Fortschritte erzielt. Im Moment beschäftige ich mich schon mit PWM und den Timern. Dazu habe ich noch eine Frage: Im Tutorial von mikrocontroller.net wird beim Kapitel über PWM ( http://www.mikrocontroller.net/articles/AVR-Tutorial:_PWM ) mit dem timer1 im Modus 14 gearbeitet. Zu Übungszwecken wollte ich den Timer nach dem Vorbild aus dem Kapitel in den 10Bit-Modus (Modus 7) versetzen. Dies gelang zunächst nicht: Der Ausgang schaltete einfach nicht um. Da ich nicht mehr weiter wusste wollte ich mich damit schon an euch wenden und habe dazu den Code etwas aufgeräumt und ausführlicher kommentiert. Das verwunderliche war: danach hat es funktioniert, obwohl ich nichts inhaltliches an dem Code geändert habe. Meine Vermutung war, dass man die Bits zur Timer-Konfiguration in einer bestimmten Reihenfolge schreiben muss (damit meine ich nicht, dass man in 16Bit-Registern zuerst das High- und dann das Low-Byte schreibt). Um sicher zu gehen wollte ich da lieber nochmal nachfragen ob das wirklich so ist, und wenn ja, in welcher Reihenfolge man die Bi... | |||
15 - Atmega Fahrradtacho -- Atmega Fahrradtacho | |||
Okay hier der Code:
Er gibt nur die Drehzahl aus was aber leicht in km/h umzurechnen wäre. Code : // Prozessor Taktfrequenz einstellen sofern es nicht eine Vorgabe // beim Aufruf des C Compilers gab. #ifndef F_CPU #define F_CPU 4000000 #endif #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include <stdlib.h> #include "lcd-routines.h" #ifndef TRUE #define TRUE 1 #define FALSE 0 #endif volatile unsigned char NrO... | |||
16 - Soundmodul - bauen/anpassen/umstellen -- Soundmodul - bauen/anpassen/umstellen | |||
Hallo Leute,
sorry das ich diesen Post ausgrabe, aber ich suche exakt nach der selben Möglichkeit einen Sound zu generieren! Allerdings für ein RC-Car und nicht für einen PKW. Es handelt sich um einen BMW M3 E90 Maßstab 1:10 bis 1:20. Es ist kein Fertigbaukasten, sondern die Teile (Bodengruppe etc) werden von einem sehr guten Freund von mir aus Kohlefaser gefertigt. Als Antrieb wird ein Brushless verbaut. Da aber ein Elektromotor eher nach einer Turbine als einem Verbrennungsmotor (V8) klingt, suche ich eine Möglichkeit dies in die Karosse zu integrieren. Dafür suche ich Anregungen und Hilfestellungen. Ich möchte einen Motorsound (einzellner Verbrennungsforgang) als PCM-Wave über einen Timer mehrfach abspielen lassen, gefolgt von einer Pause. So bekomme ich den Ausstoßvorgang gefolgt von der "Pause" des Ansaugvorganges akkustisch nachgebildet. Als VB-Programm läuft das ganze ja schon. Experimente mittels fast-PWM bringen mir auch verschiedene Sounds mit akzeptabler Qualität. Es hapert aber an den Sound-Files für den Motor und die angepasste Abspielgeschwindigkeit für die Sounds selber. Der "Sound"-Befehl von Bascom macht zwar nette piepsgeräusche, aber ich würde gerne die Abspielung über de... | |||
17 - GSM-Fernschalter Funktionen verändern über µC? -- GSM-Fernschalter Funktionen verändern über µC? | |||
Hallo,
Da ich noch in den Kinderschuhen stecke was µC Betrifft, bräuchte ich eure Hilfe. Habe ein Problem, ich würde gerne ein GSM Fernschaltmodul von Elektor aufbauen hier http://www.elektor.de/jahrgang/2008/november/gsm-f... ist das Projekt einmal beschrieben. Nun ist es dort so das beim ansteuern das ersten Relais vom µC ATmega8 nur eine Sekunde geschaltet wird. Da ich am ersten Ausgang aber gerne die Standheizung für ca. 1800 Sekunden (30 Minuten) ansteuern würde, wollte ich fragen ob es möglich ist die Firmware die es bei Elektor zum Download gibt dahin gehend um zuschreiben? Meine Überlegung: Der Standard ist folgender: Exit1 Lässt sich immer nur für eine Sekunde ansteuern. Exit2 ist Toggelfähig und kann per Jumper umgeschaltet werden auf eine Sekunde ansteuern Exit3 ist über einen Timer der am µC angeschlossen ist Steuerbar dort lässt sich zwischen 1, 5, 10, 15, 20, 30, 45, 60, 90 und 120 Minuten schalten. So hätte ich es gerne: Kann man den AVR so umschreiben / Was muss ich umschreiben das: EXIT1 den Timer bekommt (halt darüber die Dauer... | |||
18 - Mein erstes Projekt Countdown -- Mein erstes Projekt Countdown | |||
..so, ist der Thread-Starter gestorben, oder sucht er noch?
Willkommen im Forum! Hier eine interessante Seite: KLICK_MICH! Zur Löt-station: schau mal bei KLICK_MICH!..kostet zwar 70 teuronen, ist aber allemal besser als diverse bei Pol*in..oder eine mit Netzteil und Messgerät: Link [ Diese Nachricht wurde geändert von: sepp@kaernten am 8 Feb 2010 20:13 ]... | |||
19 - Timerüberlauf in CTC Modus (OCR1A Problem) -- Timerüberlauf in CTC Modus (OCR1A Problem) | |||
Hallo,
hab mal angefangen beim atmega interrupts in kombination mit timern zu benutzen. Leider schert sich das Programm in keinster Weise um den Wert in OCR1A. Von der Ausgabe her scheint der Timer immer komplett vollzulaufen und dann erst den Interrupt auszulösen. Verwendet wird ein atmega8. Code : #include <avr/io.h> #import <avr/delay.h> #include <avr/interrupt.h> //Variablen definieren int main (void) { DDRD = (1 << DDD6); // Pin ... | |||
20 - 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: | |||
21 - Zeitgesteuerte LED's mit Taster und Timer -- Zeitgesteuerte LED's mit Taster und Timer | |||
Hallo Meenzer,
Vorerst: wir haben Code-Tags, damit wird das übersichtlicher ![]() Achja, deine Taktfrequenz ist wirklich 8MHz? Wenn das schon nicht stimmt, sind sämtliche Zeitwerte deines Programmes in der Realität anders ![]() Und der AVR tut auch was? Edit: Öhm, also von der Timersache ist das OK, der erzeugt eine Frequenz von etwa 1Hz. Hast du mal daran gedacht, den Timer im Interrupt neuzuladen, also wieder Load Timer1, 34285 Ansonsten ist das Programm eigentlich in Ordnung. Nur eben den Wert neuladen ![]() Und die Zählwerte anpassen, für 2 Sekunden ist 9 schon viel zu hoch ![]() Einzig die Frage, ob das Entprellen der Tasten richtig funktioniert. Ich kann mit dem Befehl debounce nichts anfangen, aber wird schon stimmen. [ Diese Nachricht wurde geändert von: DonComi am 17 Sep 2009 19:28 ] [ Diese Nachricht wurde geändert von: DonComi am 17 Sep 2009 19:31 ]... | |||
22 - ATMEGA32 liest nur 0xFF aus dem EEPROM -- ATMEGA32 liest nur 0xFF aus dem EEPROM | |||
Hallo!
Irgendwas stimmt nicht mit meinem Quellcode mit Assembler. Ich kann ohne Probleme verschiedene I²C-ICs steuern und auslesen, nur beim DS1307 und sogar beim 24C04 bzw SDA2516 liest der AVR nur 0xFF. Ich habe verschiedene Tests gemacht um den Fehler einzukreisen. Zuerst ein Schreibtestprogramm für den TDA6200: Code : ;********************************************************************************************* ;* * ;* Test... | |||
23 - Ausführungszeit von Befehlen in BASCOM -- Ausführungszeit von Befehlen in BASCOM | |||
Hallo zusammen. Um mein Problem zu beschreiben, zunächst was ich hier habe.
Mein ATMEGA8 steuert eine Reihe von Schieberegistern (CMOS 4094) an. Er ist mit 7,3728MHz getaktet. Das Schieben der Bits nehme ich von Hand vor, d.h. nicht mit SPI o.ä. sondern durch selbstständiges schalten der Ports. Das ganze ist als Ring aufgebaut, d.h. wenn ich Daten in die Schieberegister hineinschiebe, lese ich gleichzeitig an deren Ende die Daten wieder in den AVR ein. Alles funktioniert auch wie es soll und bei einem CMOS komme ich auf ~11000 Zyklen pro Sekunde. Komisch ist nun folgendes. Habe ich 2 CMOS dran, sind es nur noch ~ 5300 Zyklen und bei 3 noch ~4000 Zyklen. Das ist eindeutig zu wenig und ich wollte nun gerne bestimmen wo mir hier Zeit verloren geht. Ich programmiere in BASCOM und meine Frage ist: "Wie kann ich die Ausführungszeiten von Befehlen, bzw. Programmzeilen, messen. ODER: Bei was in BASCOM geht viel zeit verloren (Arrays, Funktionen etc.)?" Die angebotenen Timer (z.B. SysSec) beziehen sich nur auf Sekunden - was etwas zu langsam ist. hier noch der entsprechende Codeausschnitt: | |||
24 - PWM für 4pol-Lüfter -- PWM für 4pol-Lüfter | |||
Was du glaub ich noch nicht geschrieben hast: Welche Auflösung soll die PWM denn haben? 8 Bit ist für Lüfter doch etwas übertrieben.
Wie wäre es wenn du die 8-Bit Werte für einen ganzen Port im RAM ablegst? Das 1. Bit steht für den 1. Lüfter, das 2. für den 2. usw. bis zum achten Lüfter. Von diesen Werten gibt es dann so viele wie du PWM Auflösung brauchst, bzw. so viele, dass du bei 25kHz alle durchbekommst (2^n Werte bevorzugt). Die werden dann der Reihe nach gelesen und direkt auf den Port geschrieben, sind alle durch beginnt's von vorn. Code : lo... | |||
25 - Mikrowellecontroller programieren -- Mikrowellecontroller programieren | |||
Offtopic :Fiech, mache bitte Gebrauch von den Code-Tags. So (=ohne) werden die Postings sehr schnell unübersichtlich im Fritz (äh Fred ![]() Edit: Erst die vorherigen Beiträge lesen, dann meckern ![]() Also im einfachen Windows-Style: 1. Möglichkeit: Code einfügen, markieren und den Button "Code" über dem Editor-Fenster drücken. 2. Möglichkeit: Code-Button drücken, Text einfügen, "Code*" Button nochmal drücken. 3. Möglichkeit: Den bbcode "(code)hier Code einfügen(/code)" mit eckigen Klammern selbst eingeben. Nochmal Edit, diesmal Themenbezogen: TCCR0 und TIFR sind so genannte Ports, in diesem Fall Timer/Counter Control Register 0 (TCCR0) bzw. Timer/Counter Interrupt Flag Register (TIFR) Näheres dazu im Datenblatt der AVR ATmega (ATmega8 oder ATmega16 z.B.), kostenlos bei ... | |||
26 - AVR zu langsam??? -- AVR zu langsam??? | |||
Hallo zusammen. Eigentlich geht es darum das die Kommunikation zwischen meinem AVR und dem PC nicht funktioniert. Es kommt immer nur 192dez. bzw. &hC0 an. Gefolgt von 1-3 mal &h00.
Weil mich das schon den ganzen Tag herausfordert, und ich nicht dahinter komme wo der Fehler liegt, hab ich mal einen kleinen Test gemacht und bin auf folgendes Problem gestossen: Ich habe am ATMega8 einen Quarz von 7,372800 Mhz. Am Port D.6 & D.7 ist jeweils eine LED. folgendes BASCOM Programm läuft: Code : $regfile = "m8def.dat" | |||
27 - Real Time Clock IC an AVR -- Real Time Clock IC an AVR | |||
Ein fröhliches, vorweihnachtliches Hallo an Alle!
Ich versuche , aus reinem Spass an der Freude, AVRs in Assembler zu programmieren. Also deklariere ich generell mich als Anfänger! Lauflichter, (interne)Timer, LCD Ansteurerung, etc. klappen zwar nicht immer auf Anhieb, aber mit genügend "Hirnschmalz" geht es dann doch! Nun möchte ich mal die Kommunikaton zwischen zwei Bausteinen austesten und auch verstehen. Als neues Bastelundverstehprojekt erdachte ich mir eine Uhr. Es soll ein ATmega16, zweizeiliges Display und eine externe RTC zum Einsatz kommen. Nun ist meine Frage, welche RTC (von den vielen erhältlichen) auch bei Re.....t oder so günstig zu erwerben ist, und ob Jemand bei evtl. Verständnisproblemen meinerseits, bereit ist, mir unter die Arme zu greifen. Auch Links zu diesem Thema sind willkommen. Am liebsten wäre mir eine serielle Verbindung zwischen RTC und AVR (an I2C traue ich mich noch nicht heran). Ralfi [ Diese Nachricht wurde geändert von: Tim Taylor am 19 Dez 2008 18:19 ]... | |||
28 - 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... | |||
29 - Einfaches Assemblerprogramm für PIC16F627A -- Einfaches Assemblerprogramm für PIC16F627A | |||
Hallo,
ich bin zwar eher in der AVR-Welt zu Hause, aber das Programm sollte recht einfach sein. Idealerweise verwendest Du einen Timer, der z.B. alle 10 ms einen Interrupt aufrufst. In diesem Timer bringst Du die Abfrage des Tastereingangs und sein Entprellen unter. Bei jedem Timer-Interrupt erhöhst Du eine Zählvariable, sofern der Tastereingang logisch 1 ist. Ist z.B. 5 erreicht (logisch 1 liegt seit 50 ms an, also sicherlich kein Prellen mehr), werden die LEDs weitergeschaltet. Liegen die LEDs der Reihe nach auf einem Port, lässt sich das recht angenehm mit einer Multiplikation mit 2 erreichen. Ohne Mikrocontroller sollte sich die Aufgabe aber auch mit einem 4017 und einigen weiteren Bauteilen lösen lassen. Schöne Grüße, Björn ... | |||
30 - welchen Microcontroller und wie damit umgehen? -- welchen Microcontroller und wie damit umgehen? | |||
Zitat : Nukeman hat am 20 Jun 2008 00:45 geschrieben : Der "richtige" Prozessor ist eine Glaubens- und Anforderungsfrage.... Für den Anfang mal einen erlernen ... ![]() Pic oder Avr ist ungefähr das selbe wie VW oder Opel. Jeder schwört auf seine "Marke",kann aber nicht zweifelsfrei begründen warum... Ich stand vor nicht allzulanger Zeit auch mal vor dem Problem,mit was ich den nun mit meinem Bescheidenen Horizont anfange. Hab mich dann letztendlich für das Pollinboard und den Atmega8 entschieden.Der hat für die ersten Spielerein genügend I/O Ports,brauchbare Timer und nen A/D Wandler,den sogar ich schon begriffen habe.Und der interne Oszillator läßt sich einfach auf ein paar verschiedene Taktraten umstellen. Was will man als Anfänger mehr... Und auch wenn mich DonComi und Jornbyte wieder steinigen,ich "arbeite" nach wie vor mit "Bascom" | |||
31 - Beamer-Steuerung über RS232 -- Beamer-Steuerung über RS232 | |||
Moin,
wann muss das fertig sein? Ab nächstem Donnerstag sind meine Prüfungen vorerst vorbei - da könnte ich dir gerne helfen! Ich würde das Programm in C schreiben, du müsstest mir nur alle nötigen Infos geben (wo hängen die Tasten, welcher Kode soll bei welcher Taste gesendet werden, wie ist der AVR getaktet und welcher AVR ist das?). Mit WinAVR kann man C kompilieren lassen, du müsstest dann nur den fertigen Maschienenkode in den AVR zaubern. Ich werde das Programm einfach halten, keine Timer, keine ISRs, eine Kodedatei, anstelle der üblichen (Header- und Codedatei getrennt, Makefile etc.). ... | |||
32 - Rechteckgenerator mit ATmega8 \"verschluckt sich\" -- Rechteckgenerator mit ATmega8 \verschluckt sich\ | |||
Hallo AVR-Experten!
Heute habe ich auch mal ein kleines Problem. Es ist zwar überhaupt nicht kritisch, aber ich hätte es gern prinzipiell geklärt und möchte auch etwas dabei lernen. Kleine Vorgeschichte: Ich habe auf meiner Arbeitsstelle ein kleines Prüfgerät für die Antriebselektronik von Turbomolekularpumpen gebastelt. (Das sind, vereinfacht gesagt, mit 1500 Umdrehungen pro Sekunde laufende Ventilatoren... ![]() Zunächst hatte ich eine Schaltung mit einem 556 gebastelt, die auch prinzipiell funktionierte. Nur war es leider so, daß die Frequenz nach oben hin extrem schnell zunahm. Dabei hätte ich mir schon eine gleichmäßigere Zunahme gewünscht, um im besonders interessierenden Bereich (Signalisierung von Drehzahl > 50 % bzw. Abschaltung der Pumpe bei zu hoher Drehzahl) feinfühliger einstellen zu können. Da hatte ich die Idee, einen (für dies... | |||
33 - Empfehlung Mikrocontroller -- Empfehlung Mikrocontroller | |||
Hm. an einen 18Fxxx Typ habe ich auch schon gedacht, jedoch wäre hier nur das zusätzliche USB-Modul sowie der 8Bit Hardware Multiplikator interessant. Warum allerdings der Herr Sprut die 18Fxxx Serie für einen 16Bit Kerntypen hält erschließt sich mir nicht, denn wie von Microchip angegeben handelt es sich um Mikrocontroller mit 8bit Architecktur und in den verschieden Datenblättern kann man im Block Diagramm eindeutig eine 8Bit ALU erkennen. Es gibt allerdings schon fertige 16Bit Register, welche aus 2x 8Bit bestehen. -> 16Bit Timer, 16Bit Ergebnis der 8Bit Multiplikation usw. .Diese Typen sind aufjedenfall schon mal ein Upgrade.
Das AVR-Projekt klingt recht gut, preislich find ich es schon ordentlich wobei ich das jetzt schlecht einschätzen kann, man hat ja damit viel mehr Möglichkeiten rum zutüffteln ^^. Wenn ihr noch Tips oder Erfahrungen mit andern Mikrocontrollertypen habt und einfach posten. Grüße Peingebrecks ... | |||
34 - Solarhaus Nachführung -- Solarhaus Nachführung | |||
Moin,
Über genau dieses Thema hatte ich mir vor nem halben Jahr im Sommer den Kopf zerbrochen, da ich sowas mal machen wollte für unsere Module. Der Ertrag steigert sich logischerweise wirklich, der Energieaufwand zum Nachstellen fällt kaum ins Gewicht. Ich hatte mir diverse Dinge überlegt, bin dann zum Schluss gekommen, keine Sensoren zu verwenden, sondern einen Kalender: Ein AVR ist bestückt mit einem Quarz, welcher durch Teilung (interner Timer) 1Hz erzeugt, und somit eine einfache Uhr darstellt. Ein DCF77-Empfänger (aus nem alten Wecker) dient zur Synchronisation, sodass selbst bei Temperaturschwankungen die Uhr recht genau bleibt (solange die Elektronik nicht versagt ![]() Über ein Getriebe und einen Schritt- oder aber auch 'nur' Getriebemotor wird nun die Solarzelle einen bestimmten Winkel weitergedreht - die Winkel-Ist-Referenz kann von Sensoren am Motor kommen, sodass auch wirklich der richtige Winkel eingestellt wird - Wind darf die Anlage nicht aus dem Gleichgewicht bringen. In einer Tabelle im µC liegen dann die Datensätze, die konkret die entsprechenden Winkel in der jeweiligen Jahreszeit festlegen. Abgeschreckt haben mich folgende Faktoren: - Mechanisch nich... | |||
35 - Sieben mal 5x7 LED Matrizen an µC betreiben -- Sieben mal 5x7 LED Matrizen an µC betreiben | |||
Moin,
bin auch grad (mal wieder) an einem Displaykontroller am Werkeln. Habe mir dafür ein Programm geschrieben, mit dem ich (mehr oder weniger spaßeshalber) komfortabel zu Testzwecken die Taktung des Spaltentreibers wählen Kann. Sogesehen hat mein Kontroller 5 Spalten und 16 Zeilen, die 16 Zeilen werden später per Schieberegister und Pegelwandler angesteuert. Wollt eigentlich nur sagen, dass es etwa ab 1kHz erträglich wird, also ab da erkennt man kaum noch ein Flackern. Edit: Das Programm überträgt die Daten direkt per USB zum AVR, das Programm ist geschrieben für Linux. [ Diese Nachricht wurde geändert von: DonComi am 27 Jan 2008 22:55 ]... | |||
36 - [Fertiges Projekt] AVR Display-Controller/Tester (320x240 STN. monochrom) -- [Fertiges Projekt] AVR Display-Controller/Tester (320x240 STN. monochrom) | |||
Hallo,
Die beiden Programme im Anhang dienen dazu ein Controllerloses 230x340-STN-Display, wie es z.B: Pollin unter den Bestellnummern 120 460 und 120 471 verkauft, zu testen. Die Programme sind für einen Tiny26 geschrieben. Mit einem etwas ressourcenstärkeren AVR ließe sich auch durchaus ein "richtiger" Display-Controller realisieren (In Arbeit). Die beiden Programme dienten aber wirklich nur zum Test+Zeitvertreib, bevor die Displays im Lager auf ihre eigentliche Bestimmung warten. Das erste Programm (stn-display-test-extended.asm) erzeugt nacheinander verschiedene Muster, die "Abspielgeschwindigkeit" ist im Quelltext einstellbar. Das zweite Programm (stn-display-test-grafik.asm) gibt ein im Flash gespeichertes Bild wieder, aus Faulheit ist dieses "Bild" momentan eine Text- und Musterzeile, welche 8 Pixelzeilen einnimmt, und dann Programmseitig 30 mal widerholt wird. Ein BilddatenByte enthält 8 Bildpunkte. Portiert man die Programme auf einen größeren AVR, so lassen sich auch die Zeilen auf einen Timer-Interrupt syncronisieren... Die beiden Eingangs erwähnten Displays wurden gemäß folgendem Datenblatt angeschlossen: | |||
37 - PWM beim ATMega 8 -- PWM beim ATMega 8 | |||
Hallo Leute,
ich möchte einen Servo mit einem Atmega8 ansteuern. Damit das Ausgangssignal so genau wie möglich ist, wollte ich die Compare Unit vom 16Bit Timer nutzen. Wenn ich das Datenblatt richtig verstanden habe, kann die Unit direkt auf ein Ausgangspin zugreifen und ich wäre nicht mehr Softwareabhängig. (Prozessor läuft mit 1MHz) Es sollte so ablaufen: Ich schreibe in OCR1AH / OCR1AL einen Wert. Lösche den Timer (TCNT1H / TCNT1L). Und setze den Ausgang (B1) auf „1“. Wenn der Vergleicher abgelaufen ist, soll er den Ausgang wieder auf „0“ setzen (nach 1,5ms). Nach etwa 20ms (dieser Teil des Programms ist noch nicht fertig) soll wieder alles von vorn beginnen. Im AVR-Studio funktionert es, aber am Prozessorausgang liegt immer „0“ an! ![]() Besser gesagt: ich habe es so geschrieben, dass es im AVR-Studio läuft! ![]() Das die Lösung im Datenblatt liegen könnte, weiß ich! Es sind nur eine Menge Seiten und alle auf Englisch. Falls mir also jemand direkt eine Lösung vorschlagen kann, wäre das sehr hilfreich. Mein Testprogramm: .NOLIST .INCLUDE "C:\m008def.inc" .LIST .def Temp1 = R16 .def Temp2 = R17 .def Data = ... | |||
38 - Signal mehrerer Fotodioden (Lichtintensität) mit µC auswerten (Signalkonditionierung) -- Signal mehrerer Fotodioden (Lichtintensität) mit µC auswerten (Signalkonditionierung) | |||
Das Problem ist noch immer das gleiche wie in diesem Thread (schalten ohne physikalischen Schalter), jetzt allerdings mit anderem Ansatz. Ich habe zuerst ja mal an einen kapazitiven Schalter gedacht, aber da davon mehrere (zumindest 8 ) auf engem Raum - Größenordnung 10x10 cm - sein sollten und ich bis jetzt noch nichteinmal einen stabil aufbauen konnte, möchte ich jetzt einen anderen Ansatz probieren (der Vorschlag stammt aus dem anderen Thread).
Die Idee ist mit IR-LEDs von der Seite in eine Plexiglasscheibe hineinzuleuchten, sodass das die IR Strahlung total reflektiert wird und nicht austreten kann. Unter der Platte sind an verschiedenen Stellen Fotodioden. Drückt man nun mit dem Finger auf die Scheibe, wird an der Stelle die Totalreflexion gestört und die Strahlung kann auf der anderen Scheibenseite austreten. Ist dort eine Fotodiode, "sieht" diese ein Signal (ich habe mir extra eine billige Webcam auf IR umgebaut, um das sichtbar zu machen; es gibt tatsächlich sehr deutliche Flecken). Die Stärke des Signals ist dazu noch abhängig von der Entfernung des Druckpunkts von der Fotodiode. (aus zwei F... | |||
39 - Drehgeber mit Bascom auslesen und PWM regeln -- Drehgeber mit Bascom auslesen und PWM regeln | |||
Hallöchen.
ich bin jetzt in meinem roland walter buch so weit, daß ich bei der PWM bin. jetzt würde ich gerne, statt mit avr Term (ein Terminal programm) das ganze mit nem Drehgeber machen. Es geht darum mit dem Terminal programm die Helligkeit der PWM-Led zu regeln. da ich aber kein Nullmodemkabel habe würde ich das Gerne mit nem Drehregler machen. Ich habe auch schon bei der Bascom hilfe Hilfe gefunden, aber ich schaff es glaube ich nicht: - Ihn auszulesen - Den ausgelesenen wert zu verarbeiten.(also den Timerwert um 1 zu vergrößern bei rechtsdrehung, oder den Timerwert um 1 zu verkleinern bei linksdrehung Ist jemand so nett und würde mir unter die Arme greifen? Der Drecksack Hier mal das original Listing, daß ich auf Drehgeber abändern möchte '0604.BAS: Einfacher D/A-Wandler, LED-Helligkeitssteuerung 'Hardware: Nullmodemkabel zum PC, Pin PD5 mit LED verbinden '---------------------------------------------------------- $regfile = "m8def.dat" 'ATmega8-Deklarationen $crystal = 3686400 'Quarz: 3,6864 MHz $baud = 9600 '9600 Baud | |||
40 - AVR Datasheet in Deutsch -- AVR Datasheet in Deutsch | |||
Zitat : DonComi hat am 22 Okt 2007 13:52 geschrieben : Das Probnlem ist aber ein anderes: alle Datenblätter sind auf Englisch und man muss sich damit abfinden und bestimmte Sachen einfach dazu lernen. Richtig. In der Zeit, die man verschwenden würde um sowas zu übersetzen, würde ich lieber richtig englisch lernen. Da hat man einfach mehr davon. Zitat : Ich würde mich ebenfalls über Deutsche Datenblätter freuen Ich nicht. Ich habe ein paar ältere Datenblätter auf deutsch, aber bei denen verstehe ich nur die Hälfte, denn eingedeutsche Fachbegriffe sind so ziemlich das schlimmste was man machen kann. | |||
41 - Welcher AVR Microcontroller? -- Welcher AVR Microcontroller? | |||
Tag zusammen
Ich bin auf der Suche eines neuen AVR Microntroller. Bis jetzt habe ich einen ATmega48 verwendet. Leider gehen mir jetzt bei diesem Typen die IO's aus. Also muss ich mich nach etwas grösserem umsehen. Mein momentaner Favorit wäre der ATmega16(2). Was würdet ihr mir empfehlen? Ich brauche eigentlich nur einen ATmega48 mit mehr IO's und die gleichen Funktionen (UART, PWM, Timer, I2C). IO Expander habe ich mir auch schon angesehen aber ich bin zum Schluss gekommen das ich lieber auf einen grösseren AVR Typen wechseln möchte. Die ATmega4* Serie ist glaube ich eine der neusten AVR Microcontrollern. Wie sieht es mit dem ATmega16 aus? Ist der veraltet? Denn ich möchte nicht dass er kurz nachdem ich ihn eingesetzt habe schon wieder abgekündigt wird. Ich danke schon einmal für eure Empfehlungen. Gruss Mathias ... | |||
42 - Interrupt ,Bascom und Atmega 8... -- Interrupt ,Bascom und Atmega 8... | |||
Hallo Leute!
Da ihr mir ja versprochen habt, das ich auch ohne neues Unterforum hier meine Anfängerfragen loswerden kann,fang ich jetzt mal damit an... Inzwischen habe ich es geschafft,diverse Blinker,Lauflicht und eine Ampel zum laufen zu bringen. Mein nächstes Lernziel war die Sache mit den Interrupts(PWM und Timer haben wir dann später).Also nach dem Motto,wenn ich einen Taster drücke,soll das Programm dieses oder jenes machen.Funktionierte auch,aber genau verkehrtherum.So wie ich das dann verstanden habe,werten die Atmega 8 auf Int0 und Int1 nur eine negative Flanke als Interrupt.Die Taster auf dem Pollinboard sind aber so verdrahtet,das sie bei Druck "Hi" liefern.Kann man jetzt einen Atmega 8 eigentlich überreden,auch die positive Flanke zu werten,bzw. einen anderen Pin als Eingang zu mißbrauchen der dann dem Avr sagt:Bei auftreten dieser oder jener Ereignisses mache bitte das und das und wie müßte man da in Bascom herangehen? Danke. P.S. noch einen Dank an DonComi!Hab kürzlich einen Uraltfred zwischen ihm und dem Bastelheini ausgegraben.Der Inhalt selbigens hat mir mehr geholfen,als alle Literatur die ich bisher in den Händen hatte ![]() | |||
43 - Problem mit Pony Prog ISP... MISO auf HI kommt nicht runter... -- Problem mit Pony Prog ISP... MISO auf HI kommt nicht runter... | |||
Hallo,
Ich habe mir damals Assembler einzig mit dem Datenblatt beigebracht. Unter Instruction Set Summary sind alle Mnemonics (das sind die Assemblerbefehle) samt Operatoren, Operationsflaggen und Anzahl an Taktzyklen zur Verarbeitung angegeben. Ich würde auch definitiv mit ASM anfangen, habs auch so gemacht. Da lernt man, wie die CPU arbeitet. Du kannst mich immer gerne fragen, wenn du in ASM nicht weiterkommst. ICQ klappt ja. Es ist nur so, ASM kannst du für diese CPU ur dann richtig lernen, wenn du auch bereit bist, lange im Datenblatt zu lesen, wenn du beispielsweise Hardware wie UART, Timer etc nutzen möchtest. Neben dem reinen Assembler bietet AVR Studio auch Makros und Präprozessor-anweisungen an. Das ist ein mächtiges Werkzeug. ... | |||
44 - Neues Projekt -- Neues Projekt | |||
Hi blamaster,
geb noch ein paar genauere Infos, so kann man dir noch nicht helfen. Wie viele Relais sollen angesteuert werden. Wie viele Zeiten und welche Zeiträume sollen gespeichert werden (minimale Zeitauflösung). Wie genau sollen die Zeiten eingehalten werden (RTC, DCF77). Prinzipiel sollte das z.B. mit einem AVR kein großes Problem sein. Ein einfaches Benutzerinterface ist über die serielle Schnittstelle ohne weiteres zu realisieren... und das Timing ist per Timer auch relativ einfach. Gruß, SIGINT ... | |||
45 - 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 ... | |||
46 - Mit was habt ihr angefangen für die Welt der Microcontroller -- Mit was habt ihr angefangen für die Welt der Microcontroller | |||
Was man alles bauen kann:
So ziemlich alles was du dir vorstellen kannst, angefangen von einfachen Lichtspielereien über komplexe Steuerungen, TV Signalen bis hin zu Handys (ja, es gab Handys in denen AVRs als CPU verwendet wurden) Anfangen tut man meist mit einer blinkenden LED. Danach erweitert man das ganze mit einem Taster, mehrere LEDs. Jetzt kann man schon z.B. ein paar Spiele wie einen Reaktionszeittester bauen. Und den kann man entweder ganz simple oder gut mit Timer und Interrupts machen. Dann ein billiger 2x16 Zeichen LCD an den AVR. Das sollte dich für ein paar Wochen oder Monate beschäftigen. Ich würde für den Anfang ein paar mega8 kaufen (klein und billig) und vielleicht einen etwas größeren mit mehr Speicher (mega32). ... | |||
47 - 3 x PWM in Bascom -- 3 x PWM in Bascom | |||
Hi,
der Tiny2313 hat 4 PWM Kanäle OC0A/OC0B (Timer 0) und OC1A/OC1B (Timer 1) Ich hab auch ein kleines Testprogramm für eine RGB LED Ansteuerung in Assembler. Allerdings ist es mein erstes "größeres" AVR Programm, also sicher noch nicht optimal programmiert, aber es läuft ![]() Code : ;********************************************************** .include "tn2313def.inc" ; Definitionen für ATTiny2313 ;********************************************************** ... | |||
48 - 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... | |||
49 - 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... | |||
50 - Sirenensignale -- Sirenensignale | |||
Kleiner AVR, Töne rein (in Form von verschiedenen Werten für einen Timer als Frequenzgenerator) und dann Endstufe und Horn ran - fertig. ![]() | |||
51 - DMX-Dimmer: DMX auslesen und Phasenanschnitt zu gleich? -- DMX-Dimmer: DMX auslesen und Phasenanschnitt zu gleich? | |||
Die Timer-counter laufen von selbst, haben entweder 8 oder 16 bit und werden vom Prozessortakt über einen programmierbaren Vorteiler oder extern übner einen Eingang getaktet. Wenn du nichts resettest überläuft der Zähler einfach beim Maximalwert und beginnt wieder von 0. Resetten heisst ganz einfach das Zählerregister mit irgendeinem Startwert überschreiben. Damit die Timer so laufen wie man es braucht müssen sie passend initialisiert werden. Welche Register genau welche Daten bekommen sollen steht ausführlich im Datenblatt das gerne vollständig gelesen werden möchte. Interruptroutinen sind kleine Programmteile die aufgrund vordefinierter Ereignisse sofort ausgeführt werden wenn ebendieses Ereignis auftritt. Die Ausführung des restlichen Programms wird dabei so lange unterbrochen. In einem AVR gibt es eine Vielzahl von Interruptquellen, wie z.B. Timer overflow(Timer überläuft Maximalwert), timer compare match (timer-zähler erreicht vordefinierten Wert), Pin change interrupt(Zustand eines I/O- Pins ändert sich) und noch sehr viele mehr. Interrupts sind immer dann sehr nützlich wenn man zu einem bestimmten Zeitpunkt oder nach einem bestimmten Ereignis etwas tun muss, aber nicht dauernd durch Statusabfragen Zeit Rechenzeit verheizen möchte/darf. ... | |||
52 - Oszilloskop aus Computermonitor -- Oszilloskop aus Computermonitor | |||
Ich frage mich gerade wieso möchtest du dir die Arbeit machen das komplette innenleben deines Monitors umzubauen. Ich hätte da folgende idee. Unter Link gibt es eine microcontroller kompaktible grafigkarte. Diese könnte man doch mit einem amtmel AVR ansteuern der dann über seine ADCs die zu messende spannung einliest die zeitbasi s ließe sich einfach mit einem timer realisieren. Gruß Sven ... | |||
53 - Mit Microkontroller Frequenz Messen -- Mit Microkontroller Frequenz Messen | |||
Hallo... hab schon viele Foren durchgestöbert und noch keine Hilfe gefunden!
Ich möchte ein Gitarrenstimmgerät bauen, mit einem Microcontroller (AT89S8252). Über ein microfon und einen OP und Schmitttrigger hab ich ein Rechtecksignal... welches ich an PortPin 3.2 lege (Timer 0 zählt dann also wenn eine 5V anliegen (log 1)), bei negativer Flanke wird der externe Interrupt 0 ausgelöst. In der Interrupt Service Routine wird dann der aktuelle ´Timerwert ausgelsen... soweit bin ich in meinem Denkansatz... aber da habe ich ja erst die halbe Periode... wie bekomme ich die andere Hälfte, kann der AVR das signal invertieren? Wäre stark wenn ihr mir helft, für jeden Vorschlag bin ich dankbar. mfg Wellenbrecher247 ... | |||
54 - RGB-Farbregelung mit 3 LEDs -- RGB-Farbregelung mit 3 LEDs | |||
Hallo,
ich melde mich mal wieder zurück - diesmal mit neuem Wissen ![]() Habe mich jetzt etwas mit µC von AVR (ATMega8) beschäftigt. Das Problem was ich jetzt aber immer noch habe ist die Ansteuerung der 3 LEDs. Die Regelung mit 2 LEDs über einen Timer-Interrupt funktioniert schon ganz gut, leider laufe ich noch immer auf Eis, wenn ich die dritte irgendwie mit einbinden will. Ich habe das ganze in Bascom programmiert: Code : $regfile = "m8def.dat" ... | |||
55 - DCF-77-empfang mit AT90S8515...? -- DCF-77-empfang mit AT90S8515...? | |||
hallo zusammen
ich möchte mit einem at90s8515 und dem funkuhr-modul von conrad-elektronik als großes ziel einen hifi-timer bauen, der mir zu bestimmten zeiten gezielt einzelne hifi-komponenten einschaltet. ich habe keine große erfahrung mit der programmierung von mikrocontrollern und habe mich daher entschlossen, BASCOM-AVR zu benutzen. um nun eine grundlage für mein projekt zu haben, möchte ich einfach nur mal die dcf-77-zeit auf einem display ausgeben, was bisher leider nicht funktioniert... das dcf-77-programmbeispiel bei den application notes auf der bascom-internet-seite ist ziemlich lieblos von einem 8051-controller portiert und funktioniert einfach nicht. falls jemand das so anpassen könnte, daß es läuft, wäre ich sehr dankbar. (zu finden unter http://www.mcselec.com/an_122.htm außerdem habe ich noch folgendes (auch von einem 8051 portiertes) programm gefunden, welches ebenfalls nicht läuft. da ich leider nicht mehr weiß, wo ich das programm gefunden habe, poste ich einfach anschließend den quelltext und hoffe, daß mir jemand von euch weiterhelfen kann. zu meiner ausstattung gibt's folgendes zu sagen: ... | |||
56 - Bau eines Roboters -- Bau eines Roboters | |||
avr studio 4 oder 3..
du kannst ein neues projekt starten, wählst deinen avr aus und schon öffnet sich das fenster wo du deinen quellcode reinschreiben kannst. auf der linken seite haste dann alles was im µC verbaut ist und kannst sehen das wenn du z.b. ldi r16, 8 (lade ins arbeitsregister nr.16 die zahl 8 naja dann siehste hinter dem arbeitsregister wie aus der zahl xx 8 wird. (musst natürlich vorher auf den knopf build, und dann auf run klicken. und mit der taste f11 gibtse 1 tackt also er geht 1 befehl nach den andern durch) so und wärend du build gedrückt hast wurde in deinem projektorder auch dein blabla.hex datei erstellt. diese kannste mit sp12 sofort auf den µC schiessen. kopierst also die blabla.hex in den sp12 order startest ein msdos eingabefenster und schreibst sp12 -wpf blabla.hex fertig. und wenn du dich dann ein bissl auskennst sollteste nach avrmon ausschau halten. kannst mit dem sp12 programmiergerät (3 widerstände) dann in dein programm rcall avrmon schreiben und an der stelle wartet der µc auf den pc. kannst also nach einer messung oder sonstiges dein diesen rcall ausführen, dann wartet der µC und wenn du dann am rechner hockst kannste dir alle register auslesen oder alle register verändern. könnte... | |||
57 - Hilfe AVR mit I2C software AVR300 -- Hilfe AVR mit I2C software AVR300 | |||
also gut dan poste ich halt das avr300.asm
;**** A P P L I C A T I O N N O T E A V R 3 0 0 ************************ ;* ;* Title : I2C (Single) Master Implementation ;* Version : 1.0 (BETA) ;* Last updated : 97.08.27 ;* Target : AT90Sxxxx (any AVR device) ;* ;* Support email : avr@atmel.com ;* ;* DESCRIPTION ;* Basic routines for communicating with I2C slave devices. This ;* single master implementation is limited to one bus master on the ;* I2C bus. Most applications do not need the multimaster ability ;* the I2C bus provides. A single master implementation uses, by far, ;* less resources and is less XTAL frequency dependent. ;* ;* Some features : ;* * All interrupts are free, and can be used for other activities. ;* * Supports normal and fast mode. ;* * Supports both 7-bit and 10-bit addressing. ;* * Supports the entire AVR microcontroller family. ;* ;* Main I2C functions : ;* 'i2c_start' - Issues a start condition and sends address ;* and transfer direction. ;* 'i2c_rep_start' - Issues a repeated start condition and sends ;* address and transfer dire... | |||
58 - PS/2-Module für AVR? -- PS/2-Module für AVR? | |||
Zitat : MicroTobi hat am 20 Aug 2004 12:38 geschrieben : Das Modul, das ich mir kaufen werde hat 16MBx32bit, also 64Mbyte, oder? Am besten immer über die Bits ausrechnen: 16Mx32=512MBit 512M/8=64MByte Im Moment bastle ich ein kleines Programm für einen AVR, der im Prinzip das macht, was später der FPGA machen soll: Auf Befehl einen Wert aus dem DRAM lesen, und diesen Wert ausgeben. Im Moment wird das ganze über RS232 gesteuert, mit SPI geht es hoffentlich schneller als 10kB/s (theoretisch schafft der AVR (leicht übertaktet) 500kB/s.) Im Hintergrund läuft ein Timer und weckt den uC alle 30ms aus dem Schlaf, damit dieser den kompletten Speicher auffrischt. So müsste man das ganze ziemlich stromsparend hinbekommen. Das ganze soll eine Low-Cost Alternative für EEPROMs werden, um Daten mit einem Datenlogger aufzuseichnen. Mal schauen, vielleicht bekomme ich das ja einigermaßen hin, so dass sich ein Betrieb mit GoldCap oder ... | |||
59 - Verwendungen von Microkontrollern -- Verwendungen von Microkontrollern | |||
hi,
also mit µP kann man im prinzip alles machen, wo es um steuern, regeln, messen, anzeigen usw geht. bin seit ca 6 monaten mit Atmel AVR dabei und hab schon diverses gemacht, zb.: innenlichtdimmer fürs auto mit auf und abdimmen und jede menge andere zusatzfunktionen. temperaturanzeige fürs auto über diagnoseschnittstelle. spannunganzeige, temperaturanzeige, schnellader mit deltapeak für akkus, MP3 player. wie schon erwähnt lassen sich mit einem µP viele dinge vereinfachen, die sonst per hardware schwieriger bzw aufweniger wären. es gibt aber auch fälle, wo es nicht weniger aufwand ist mit einem µP, sondern wo ein µP vielleicht überqualifiziert ist, aber trotzdem "besser", weil sich änderungen in der software und somit funktionen einfacher verändern lassen. den innenlichtdimmer könnte man zb einfach mit einem NE555 timer aufbauen. ich hab mich aber für einen kleinenatmel entschieden, da sich damit beeinflussungen einfacher realisieren lassen, zb aufdimmen bei zündschlüssel raus. weiterhin hat der atmel schon einen PWM ausgangs, was bei einem NE555 noch zusätzlich gemacht werden müste. oder eine spannungsanzeige mit 7 segmentanzeigen. für eine fertige zahlt man schon 20 euro bei conrad. es gibt auf fer... | |||
60 - sinnvolles Projekt gesucht -- sinnvolles Projekt gesucht | |||
Also, wenn du es genau wissen willst, vergiss das Teil.
Es ist langsam, teuer, unflexibel, langsam, nur grafisch zu programmieren (mal abgesehen von 250 (oder so) Assemblerbefehlen pro Programm), langsam... Ach ja, erwähnte ich schon, dass das Teil langsam ist? Wie dir einige schon geraten haben, fang mit den AVR-Controllern an. Die sind wesentlich flexibler als die C-Control, günstiger und vor allem schneller (grob geschätzt um den Faktor 100). Und wenn du dann was damit gemacht hast, kommen die Ideen wirklich von selbst. (Bei mir hats mit nem Timer angefangen, ging dann über ne große LED-Uhr (50mm höhe), über ein grafisches Display für Winamp über die serielle Schnittstelle, bis hin zum Vorverstärker, schaltbaren Steckdosenleiste, Mischpult ...) ... | |||
61 - Bascom AVR -- Bascom AVR | |||
Ist ganz einfach:
Code : ..... $crystal = 8000000 .... Und der Reload Wert für Timer 1 ist dann ca. Quarzfrequenz/Prescalerwert Also bei 8MHz 8000000/1024 = 7812. Das ganze ist aber noch ein bisschen was komplizierter, da der Timer ja in der Zeit nicht Zählt, die es dauert, bis in den Interrupt gesprungen wurde, und der Timer neu geladen wurde. Dass heisst die Zeit wird ein wenig länger sein als berechnet. Desswegen muss man sich das entweder g... |
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 12 Beiträge im Durchschnitt pro Tag heute wurden bisher 16 Beiträge verfasst 4 Besucher in den letzten 60 Sekunden alle 15.00 Sekunden ein neuer Besucher ---- logout ----su ---- logout ---- |