-
Thread
RGB-LED Ansteuerung mittels PWM in AVR Studio 4 (C-Programmieren)
Pulsweitenmodulation zu realisieren. Als Mikrocontroller verwenden wir einen Atmega 328, nebenbei arbeiten wir mit AVR Studio 4 und einem AVR Dragon. Für das Projekt soll der ADC des uC verschiedene "Potentiometerstellungen" einlesen und diesen verschiedene Werte zuordnen( welche dann für die "Stärke" der 3 Farben stehen
und eine dazugehörige main.c, die ein Studienkollege erstellt hat: #include <avr/io.h> #include <util/delay.h> #define LED_PORT PORTC #define LED_PIN 0 #define LED_off() LED_PORT&=~_BV(LED_PIN) #define LED_on() LED_PORT|=_BV(LED_PIN) int main (void) { DDRC
-
Thread
2A mit Transistor über AtTiny schalten
bis 4,2 A schalten, aber in jedem Fall deine 2 A. Trotzdem solltest du dich in Transistoren einlesen. Hier wäre schon einmal eine gute Adresse: https://www.elektronik-kompendium.de/sites/bau/index.htm#a4
Schaltung (https://www.mikrocontroller.net/topic/436320?reply_to=5162391#5162282) am Punkt "AVR Ausgang" statt des AVR-Pins die volle Betriebsspannung anlegst? (Dann sollte der MOSFET ganz aufmachen und Deine LED schön erstrahlen - zumindest so hell, wie wenn Du die LED direkt an die
-
Thread
CPU in VHDL designen
Korrektur das Picoblaze Intructionword ist 18bit breit, beim AVR sind es 16. Die Arbeit mit Registerfile statt akku ist nicht viel anders, für das Registerfile baut man sich einen Dual Port RAM aus distributed Mem, legt die addressbits aus dem Instruction word
Unterstützung der Schreibfaulheit im Stil von "Überaus praktisch, denn dann kann ich den Ausgang /einlesen/ und spare mir lokale Signale!" verwendet werden.
-
Thread
USB Signal über 2 µCs seriell Übertragen
solange er von Atmel ist > (damit wir mit der Programmierung nicht komplett überfordert sind, > AVR kann ich wenigstens grundlegend) und Alles kann was wir brauchen. Dir ist offensichtlich nicht klar, dass AVR und AVR32 zwei völlig verschiedene Architekturen sind, die nichts miteinander zu tun haben. Das steht sogar im passenden Wikipedia-Artikel. Deine AVR-Kenntnisse sind bei AVR32 ähnlich nützlich wie bei ARM oder MIPS. Programmer und Debugger kannst du nicht benutzen. Je mehr ich von dir lese, desto mehr habe ich das Gefühl, dass das eher nichts
-
Thread
Arduino DMX 256 Kanäle als Paket senden
ich oben beschrieben habe? Einfach die Animationen als File einlesen und ausgeben.
44,1 Hz (22 ms) Refresh selbst bei 2 aktiven UART DMX Output, da langweilt sich ein 16 MHz ATmega AVR.
-
Thread
PIN vs PORT beim OUTPUT
Auch bei einem AVR kann man, wenn der Pin sich im Output befindet, den IST-Zustand über PINx abfragen. Gerade wenn mit Pull-Up / -Down gearbeitet wird ist dies sehr hilfreich. Ob dies nun bei allen AVR so ist, kann ich
anmutet. So ist es. Man kann sogar einen kompletten Port kurzschließen. Der AVR wird heiß, funktioniert aber hinterher trotzdem noch. xXx schrieb im Beitrag #5101469: > Könnte es nicht so sein, dass der Pin PC7, auf Eingang geschaltet werden > sollte
-
Thread
Atmega328 UART 1'000'000 Baud
den Zauber auch hier mal ansehen. https://github.com/Traumflug/Teacup_Firmware/blob/master/serial-avr.c
die Formel für das Baudraten-Register neu erfinden. Benutzt doch einfach http://www.nongnu.org/avr-libc/user-manual/group__util__setbaud.html
-
Thread
FIR Filter auf PIC
nimmst du die Musik? Kannst du mal ein > Schema posten? Spotify -> Soundkarte (Cinch) -> An Analog Port -> im µC messen -> Ausgabe am UART Port -> Einlesen am PC mit UART / USB Converter Patrick B. schrieb im Beitrag #5093978: > Kann es sein dass dein Musik-Signal 0-5V ist und du am ADC das > als
die Musik? Kannst du mal ein >> Schema posten? > > Spotify -> Soundkarte (Cinch) -> An Analog Port -> im µC messen -> > Ausgabe am UART Port -> Einlesen am PC mit UART / USB Converter Mhm, die Soundkarte gibt dir irgendwas +-V aus. Wenn der ADC Eingang ganz normal aufgebaut ist, wirst du hier
-
Thread
I2C - Pull Up Widerstände
Datenblatt steht wohl, dass der Controller es automatisch tut aber Herr HildeK meint, man müsse selber die Ports definieren. Was ist mit High und Low gemeint? Die SDA und SCL Ports liegen im Arduino Boards bei A4 und A5. Also: DDRD=0X00 PortD= 0X00 ?
I2C_Start(); I2C_Adresse(0x40); I2C_Senden(IODIRA); //Register für die Richtung des Ports I2C_Senden(0x00); //Alle Ports von A auf Ausgang I2C_Senden(OLATA); //Alle Ports von A auf High I2C_Senden(0xFF); I2C_Stop(); Kann ich keine Spannungen bei Port A messen.
-
Thread
Allg. Fragen zum Debuggen von AVRs
hilft es die Bugs statt im real life im Simulator zu jagen: https://www.mikrocontroller.net/articles/AVR-Simulation
bei AVR, weil die ersten 100 Ergbnisseiten bei google nix anderes kennen. Es gibt auch eine Handvoll Eval-boards für AVR mit dem embedded Debugger, aber wenn man das Tutorial 1:1 nachmachen möchte sollte
-
Thread
GUI System für einfache Anwendung gesucht.
Klaus schrieb im Beitrag #5071224: > WEB Server auf dem PC Da Dein AVR an einem COM Port hängt brauchst Du keinen WEB Server. Du kannst auch eine lokale HTML Seite machen und mit einem Javascript Timer refreshen. Dann machst Du ein include auf eine weitere lokale HTML
bei einem AVR mit USB SIO dran
-
Thread
Maximale Sampling Rate Atmega 20 MHz, mit parallelem externem ADC
auf 16 Bit Breite zu kommen. Der ADC schreibt parallel hinein, mit seinem festen Sampletakt. Der AVR muss nur das HALF-FULL Flag auswerten, und wenn das gesetzt ist, kann er die halbe FIFO-Kapazität in einem Rutsch ohne weitere Abfragen einlesen. Und dafür ist zusätzlicher, externer Speicher ganz hilfreich
und über Timer1 gesteuert. Als ADC hatte ich wenn ich mich recht erinnere zwei MAX153, einen an Port A und einen an Port C. Dann noch 2x CS und 2x RD an PortB. Prinzipiell ist das Projekt also machbar.
-
Thread
6 Sinuskurven mit 400Hz - welcher DDS?
eine klassische Funktion für uCs mit ausreichend PWMs. Versuch einen pinkompatiblen uC zu deinem AVR zu finden der genügend PWMs hat.
Martin S. schrieb im Beitrag #5040331: > ATmega32 (AVR-NET-IO) 1. Da kannst Du ganz einfach einen 644 oder 1284p reinstecken, und hast mehr PWMs. Und mehr Ram und mehr UARTS zum debuggen und und und. Achtung: Beim orginal AVR-NET-IO bleibt ab
-
Thread
Dimensionierung Pull-Up
und runter programmieren, aber > habe noch nie einen Arduino da kannst du genau wie bei nackten AVR die Ports setzen wie immmer, du musst nicht mal die Arduino Schreibweise bemühen. entweder PORTB |= (1<<4); oder digitalWrite(12, HIGH); // 12 für D12 auf dem ATmega328p PB4 für den internen
runter programmieren, aber >> habe noch nie einen Arduino > > da kannst du genau wie bei nackten AVR die Ports setzen wie immmer, du > musst nicht mal die Arduino Schreibweise bemühen. Richtig, aber Darius wollte ja gern, dass ich ihm mit einem Sketch demonstriere, wie das aussehen soll. Das
-
Thread
QR Code lesen mit ATMega oder STM32F1
dann diverse Auflösungen konfigurieren z.B. 120x160. Per DMA lassen sich dann locker 30 FPS damit einlesen. Über Schwellwertbildung lässt sich dann auch super so ein QR Code einlesen. mfg
1&algo_pvid=d81ebcf8-273e-48cb-acd6-f8c054f41784 ARGH... hat auch USB und einen virtuellen COM-Port... Sorry
-
Thread
Digitalen Temperatur Sensor bis 200°C ?
auswertet und direkt das Signal als I2C oder SPI ausgibt? Ansonsten werd ich das wohl doch an den ADC Ports machen müssen. mfg
zur Schnecke machen nur weil er richtigerweise denkt Profis fragen ist schneller als sich 5 Jahre einlesen... Ist hier aber leider üblich...
-
Thread
AVRDude - Leseproblem
Board. Wenn ich Sketches/Apps in das Gerät lade, funktioniert alles einwandfrei. Auch kann mit AvrDude den EEPROM schreiben. => Schreiben funktioniert fehlerfrei. Anfangs bin ich über den "sync error" beim verifizieren gestolpert und hatte auch das Phänomen, das er fehlerfrei geschrieben hat,
Copyright (c) 2007-2014 Joerg Wunsch System wide configuration file is "C:\WinAVR20100110\bin\avrdude.conf" Using Port : COM3 Using Programmer : wiring Overriding Baud Rate : 115200 AVR Part
-
Thread
ATMega328-basierter Sprach-Synthesizer für den CPC 464 - Schnelles Byte-weises Lesen mit dem 328?
alten Prozessoren muß/te man immer die sehr schwachen Bustreiber berücksichtigen. Um einen fetten AVR-Port umzuladen, brauchen die vielleicht etwas mehr Zeit als man denkt.
noch einmal abschliessend melden... > so wie es aussieht, ist all die Diskusion um Timing- und > Port-Lese-Probleme etc. Makulatur. Kannst du mal testweise einen String schnellstmöglich an deinen Synthesizer schicken (also mehrfaches LDI), und schauen, ob dein AVR hinterherkommt? Deine Schaltung
-
Thread
Weigu AVR-Assemblerkurs Modul A
;Sensor 3 Wert einlesen ld r1,y ;Sensor 1 Wert einlesen ldd r5,y+4 ;Sensor 5 Wert einlesen out PORTD,r3 ;Sensor 3 Wert ausgeben out PORTD,r1 ;Sensor 1 Wert ausgeben
765 Takte. G1=0 ist als 256 anzusehen. t=G1*3 finde ich ist eine gut zu merkende Grundlage für die AVR-Assemblerprogrammierung, wenn es um 8-Bit-Zeitschleifen geht. Das ist nicht aus meinen Überlegungen entstanden, sondern hierher : http://www.avr-asm-tutorial.net/avr_de/zeitschleifen/delay8.html
-
Thread
Attiny 44a PWM getrennt ausgeben
gehen davonn aus, daß am anfang alles null ist. Portx:=%0000 0000; dann setzt du port 5. Portx:=%0000 0000 or %0001 0000 = %0001 0000; So und jetzt willst du port 6 aktiv setzen mit deiner methode. also Portx:=%0001 0000 or %0010 0000 = %0011 0000;
modelleisenbahn-steuern.de/controller/atmega8/12-13-1-tccr1a-atmega8.htm https://www.mikrocontroller.net/articles/AVR-Tutorial:_PWM
-
Thread
Schaltplancheck erbeten - ATtiny & MAX485
Diese App Note, ich lese da was von Datum 2016? http://www.atmel.com/Images/Atmel-2521-AVR-Hardware-Design-Considerations_ApplicationNote_AVR042.pdf
da was von Datum 2016? Was willst du uns damit sagen? > http://www.atmel.com/Images/Atmel-2521-AVR-Hardware-Design-Considerations_ApplicationNote_AVR042.pdf Dem Meister der dort gezeigten Schaltpläne sollte man mal einen größeren Vorrat an "Junctions" zukommen lassen ;-(
-
Thread
Code gesucht xmega 128 mit ds18b20
Google kaputt? AVR-GCC Code findet man doch haufenweise. Vielleicht nicht gerade für Dein konkretes AVR-Derivat. Fix und fertig gebackene Programme wird Dir kaum einer auf dem Silbertablett servieren. Kleinere Anpassungen muß man schon selber machen, also sich erstmal etwas einlesen in den DS18B20. Vielleicht ist sogar schon im ASF (Atmel Software Framework) eine 1-Wire Lib drin.
-
Thread
SPI mit Atmega32
ich versuche schon mehrere Tage, eine Porterweiterung mit einemMCP23S17 zu machen. Die Ausgabe auf Port A klappt, nur das Einlesen bekomme ich nicht hin. Ich habe schon alle möglichen Unterlagen durchgesehen, komme aber nicht weiter. In der angehängten Datei ist oben die eigentliche serielle AUS-/Eingabe, darunter die Initialisierung des MCP. Zum Schluss zuerst die Ausgabe an Port A, dort klappt das Rücklesen auch nicht. Darunter ein Versuch mit nur zwei Byte am Port B, da kommt auch nichts raus. Egal ob ich OP-code $40 oder $41 verwende. Das DB des MCP ist da auch nicht sehr
-
Thread
Arduino Genuino 101 - Erfahrungen?
ins Datenblatt von dem uC schauen: http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-42735-8-bit-AVR-Microcontroller-ATmega328-328P_Datasheet.pdf In Kapitel 18 "I/O-Ports" findest du alles, was du brauchst, inkl. Codebeispiele fuer C und ASM, um I/O Pins anzusprechen. Die Kapitel 16, 19, 20,
void sensor_bb_fallend() { latest_interrupted_pin=PCintPort::arduinoPin; durchgang_backbord = micros(); } void sensor_stb_fallend() { latest_interrupted_pin=PCintPort::arduinoPin; durchgang_steuerbord = micros(); } [/c] Gruß Xenophon
-
Thread
Taste in ISR entprellen
sample = Pin_SW2_Read(); // read the pin value of the switch Pin_Port3_Write(1); // P3[5] only for measuremet Pin_Port3_Write(0); if (sample != keyStateIdle_low) // check against idle state of the pushbutton
LED_red_Write (0); Pin_Port3_Write(1); // P3[5] = high for(;;) { asm("NOP"); } } [/c]
-
Thread
Hilfe beim Brennen eines Atmega8 ( Fusebits)
AVR-Studio gibt für 8MHz intern die Fuse-Werte wie im Bild aus.
nimm myAVR-ProgTool http://shop.myavr.de/index.php?sp=download.sp.php&suchwort=dl112 Pollin Atmel Eval.Board 2.01 Serielles Kabel 1:1 an COMx (PC) und Ser.ISP (Atmel Ev.Board) anschliessen myAVR-ProgTool
-
Thread
Suche: Generator für mehrere digitale Signale
Und wenn du es mit einem AVR machen willst, schickst du die begrenzte Anzahl von Zuständen von 8 Ports in sein SRAM, gibst grob die Taktfrequenz vor und los gehts.
Moritz G. schrieb im Beitrag #4956166: > Ich werde einfach einen Port nehmen damit es Gleichzeitigkeit gibt und > eine Serie von 24 bit "Befehlen" im 2KB SRAM speichern. Immer wenn der > Zählerstand im "Befehl" erreicht ist wird das Byte an den Port > geschrieben.
-
Thread
Leiterplatte herstellen lassen
des Displays könnte man ein Poti vorsehen Schau Mal: https://www.mikrocontroller.net/articles/AVR-Tutorial:_IO-Grundlagen
sind die wohl gleich Null? Im Netz findet man doch genug Grundlagen in die du dich erst mal einlesen kannst.
-
Thread
ATTiny25: unklare Interaktion PROGMEM <-> ADC
mehr weiß: es interessiert >> mich! http://www.atmel.com/webdoc/avrlibcreferencemanual/group__avr__interrupts.html
ungetestet. > Also näher an 'gerade so' als an 'ganz locker' :-) Wobei der oben gezeigte, von avr-gcc erezgte Code nahelegt, dass du eine ältere Compilerversion verwendest. Ich würde tippen nicht neuer als avr-gcc v4.6, also z.B. ein WinAVR.
-
Thread
KiCAD ist im Kommen
Eeschema > (Anotation) > ECR > Fehler korrigieren > Netzliste generieren > PCBnew > Netzliste einlesen ...
da auch das Einlesen drin. Habe gerade keine Zeit, mir das näher anzusehen.
-
Thread
ESP8266 - und nun?
und Seriell. Ich fand es auch recht unsinnig den ESP mit AT-Befehlen zu steuern - besonders vom AVR aus - wenn doch der ESP-µC viel leistungsfähiger ist. Ich bin dann bei den Wemos oder NodeMCU Boards gelandet.
randomnerdtutorials.com/flashing-nodemcu-firmware-on-the-esp8266-using-windows/ Programm runterladen, Com Port einstellen, Speicher auswählen den du hast. Entweder 1MB oder 512KB und auf Flashen gehen. Schon hast du die Firmware installiert.
-
Thread
Erfahrungen mit Arduino
Ich bin mit dem AVR Studio groß geworden. Vorteil ist hier einfach die deutlich besseren Debug-Möglichkeiten. Also per Debug Wire oder JTAG direkt in die Register reingucken, Hardware Breakpoints nutzen usw. Auch das
Teil auch auf andere uC wie PIC, 8051 geportet. Als Entwicklungsumgebung arbeite ich meist mit AVR Studio, CodeVision AVR und natürlich geht es auch mit der Arduino IDE;-) Damit hat man ziemlich viel Spielraum. Grüsse, Gerhard
-
Thread
AVR Simulator mit grafischer Benutzeroberfläche für Linux
Mittlerweile kann das Programm auch die "elf"-Objektdateien, welche avr-gcc 4.9.2 erzeugt, einlesen und die Quelltext-Zeileninformationen aus den debug-daten verarbeiten. Das avr-gcc_sample ist das Testprojekt, welches mir zum Evaluieren dient. Es besteht aus einem "C"-
main.eep # Creating Extended Listing: main.lss # avr-objdump -h -S main.elf > main.lss # Creating Symbol Table: main.sym # avr-nm -n main.elf > main.sym avr-size main.elf [/code] Und mit Assembler-Dateien klappt die Source-File-Ausgabe.
-
Thread
AVR -> STM8/32. Was ist anders? Was zu beachten? Was benötigt? Gesperrt
> #include <avr/io.h> > > DDRA |= (1<<PA1); // pin als Ausgang > PORTA |= (1<<PA1); // PIN auf HIGH IAR & STM8: #include "iostm8.h" PA_DDR_DDR1 = 1; PA_CR1_C11 = 1; // Port A, pin 1 is Push-Pull
Es ist im Prinzip genau das Gleiche. Beim Arm muss nur zusätzlich der Port an den Bus zugeschaltet werden: RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); DDRA |= (1<<PA1); // pin als Ausgang beim AVR gibt es nur Eingang und Ausgang, also 1Bit gestzt
-
Thread
Falsche Analogwerte im Seriellen Monitor
unbekannt ist, dann kannst Du nicht logisch vorgehen. Er muss deine Hardware korrekt konfiguriert und der AVR µC richtig beschaltet sein. Also besorge Dir bitte einen Schaltplan und überprüfe ihn, lies die Atmel Application Notes zum ADC und zur Hardwarebeschalstung. Dann sehen wir weiter.
wenn deine Hardware > nicht korrekt ist > Er muss deine Hardware korrekt konfiguriert und der AVR µC richtig > beschaltet sein. > > Also besorge Dir bitte einen Schaltplan und überprüfe ihn, lies die > Atmel Application Notes zum ADC und zur Hardwarebeschalstung. Dann sehen > wir weiter.
-
Thread
BASCOM AVR Bedeutung
so gehts ------------------ Config PORTA = Output Config PORTC = Output Config PORTE.4 = Output Config PORTE.5 = Output Config PINB.5 = Input Set PORTE.4 Set PORTE.5 ------------------- so geht's nicht ------------------- Config PINE.4 = Output Config PINE
Compiler gibt halt die Schlüsselworte vor. Beispiel: Portpin Initialiserung Eingabe --- '*** Port und Pin für den DCF77-Empfänger Dcf_empfaenger Alias Pinb.1 'HIER DEN Port-IN-Pin EINTRAGEN Config Dcf_empfaenger = Input '*** Portpin einlesen EineVariable
-
Thread
Elektronikbasteln die nächsten 10..20 Jahre
Stunde Arduino gesagt: Das ist mir zu stark eingeschränkt, das nutzt nur 10% der Möglichkeiten des AVR. Zum Beispiel: Pin setzen geht, ganzen Port setzen - häh? ADC einlesen geht, aber dann rödelt der solange bis er das Ergebnis hat und dann geht es erst weiter. Das mache ich ganz anders, aber ich programmiere auch schon 10 Jahre auf AVR. Für einen Anfänger ist es ideal: Ich muss nicht wissen, wie ich den ADC einzustellen habe, und welches Bit ich abzufragen habe, ob die Wandlung fertig ist, ich sage einfach: Gib mir den Wert von
-
Thread
Batterie Spannung messen: stromsparendste Methode für spezielle Anwendung
3,1V-4,1V lebt der Akku länger. Aber du nutzt ca. 15% der Kapazität nicht. Effektiv lässt du deinen AVR so lange laufen, bis entweder die Akkuspannung unter 3,1V gesunken ist oder er einfach ausgeht. Den LDO ignorierst du, der AVR hat ne BOD. > Aus Stromspargründen gibt es noch die Überlegung den LDO
Platinchen mit dem TXS108E günstig zu haben. Aus dem Datenblatt: "FEATURES 1.2 V to 3.6 V on A Port and 1.65 V to 5.5 V on B Port (V CCA ≤ V CCB )"
-
Thread
Kompletter Einsteiger: welcher µC, um Knopfdruck an PC weiterzuleiten?
Parallelport vorhanden, dann ist die Sache besser machbar. Ansonsten aber für einen uC-Einstieg lieber in das AVR GCC Tutorial schauen und ein paar Standalone-Projekte entwickeln...
einlesen können. Heute muss man an den PC erst das Pendant eines C64 (allerdings mit mehr Rechenleistung) anschließen, der dann dediziert zum Einlesen der Taste da ist, da der PC selbst nicht mehr in der Lage
-
Thread
F1-Drehzahlanzeige selber programmieren
Datenblätter lesen kannst > - mit welchem Betriebsystem du arbeitest > > Hast du schonmal ein AVR Tutorial durchgearbeitet? Mit welchen > Funktionseinheiten (Ports, ADC, Interrupts, Timer, etc) hast du dich > vertraut gemacht? Welche hast du nur mal kurz ausprobiert aber nicht > weiter vertieft
PORTC |= BarGraph [AnzahlLeds]; //PortC An?! PORTD |= BarGraph [AnzahlLeds]; //PortD An?! }[/c]