-
Thread
SSD1306 Display Probleme bei Zahlendarstellung
Grave Accent {0x20,0x54,0x54,0x54,0x78}, // ( 65) a - 0x0061 Latin Small Letter A {0x7F,0x48,0x44,0x44,0x38}, // ( 66) b - 0x0062 Latin Small Letter B {0x38,0x44,0x44,0x44,0x20}, // ( 67) c - 0x0063 Latin Small Letter C {0x38,0x44,0x44,0x48,0x7F}, // ( 68) d - 0x0064
I2C_LCD.c * * Created: 02.12.2016 10:55:04 * Author : */ #define F_CPU 8e6 #include <avr/io.h> #include <avr/eeprom.h> #include <avr/pgmspace.h> #include <util/delay.h> #include <stdlib.h> #include <string.h> #include "i2c.h" #include "SSD1306.h" #include "light_ws2812.h" struct
-
Thread
128 Bit Risc
oder gar nicht.. @mattias: U.U. lassen sich die SSE Extensions nutzen, wenn Du statt einem INT128 oder einem INT192 einen INT112 oder INT160 (56 + 48 + 56) entsprechend meinem https://www.mikrocontroller.net/topic/413678#4835601 bastelst - ich meine, der Code müsste ohne Flags funktionieren (entsprechende
Beitrag #4838777: > @mattias: > U.U. lassen sich die SSE Extensions nutzen, wenn Du statt einem INT128 > oder einem INT192 einen INT112 oder INT160 (56 + 48 + 56) entsprechend > meinem Beitrag "Re: 128 Bit Risc" bastelst - ja nett aber was ist das für eine Sprache und mit int160 meinst du einen
-
Thread
Verkettete Liste für Mikrocontroller Gesperrt
Stefan U. schrieb im Beitrag #4814015: > Welcher kleine Mikrocontroller (wie AVR's) hat denn 64kB RAM? Silabs EFM32GG hat bis 1M Flash und 128kB RAM. Als Cortex-M3 mit maximal 48 MHz ist der noch in der AVR Klasse. Ein NRF52 von Nordicsemi hat 64 kB RAM (Cortex M4F mit 64MHz
Jim M. schrieb im Beitrag #4814196: >> Welcher kleine Mikrocontroller (wie AVR's) hat denn 64kB RAM? > Ich würde QFN48 noch als klein bezeichnen. Nach dem Motto: malloc darf nur ab QFN64 verwendet werden? ;-)
-
Thread
Auslesen von 48 Tastern mit AVR
Hallo zusammen, ich möchte mit einem möglichst kleinem Avr 48 Taster auslesen. Da ich Pins sparen möchte bin ich beim recherchieren auf die Möglichkeit gestoßen das Ganze über den ADC Eingang mit verschiedenen Widerständen zu betreiben, diese Methode klappt
Thgomas T. schrieb im Beitrag #4810242: > ich möchte mit einem möglichst kleinem Avr 48 Taster auslesen. Wie haben die Experten das bloß in meiner Tastatur gelöst? Ich such da mal nach Schieberegistern, Portexpandern oder 100-Beinigen µCs. MfG Klaus
-
Thread
Grosses Display (ev. 7-Seg.) für CO2-Anzeige gesucht
batterietauglich. Naja, wenn das das einzige Problem ist, die Schrittmotoren sehen schwer nach 28BYJ-48 aus, zum Beispiel wie die hier: https://www.amazon.de/28BYJ-48-28BYJ48-4-Phase-Arduino-Stepper/dp/B00ATA5MFE Die Dinger haben ein Getriebe drin, die verdreht man stromlos nicht einfach so, die Untersetzung
Application Note AVR340 bschreibt, wie man ein multiplexed LCD, wie MaWin es vorschlägt, einfach mit jedem AVR, der genügend I/O Pins hat, ansteuern kann: http://www.atmel.com/images/doc8103.pdf
-
Thread
Speicherfragmentierung kein Thema mehr?
besser) wissen. Ja. Ich habe schließlich erstens selbst mal ein malloc() geschrieben (in der avr-libc), zweitens mir das angesehen, was andere da so machen. (Die avr-libc-Implementierung macht allerdings kein Pooling, da so ein AVR halt nur wenig RAM hat und man dann zu viel verschwendet.)
} $ cc -O -o foo foo.c $ ldd foo foo: libc.so.7 => /lib/libc.so.7 (0x80081c000) $ gcc48 -O -o foo foo.c $ ldd foo foo: libc.so.7 => /lib/libc.so.7 (0x80081c000) [/pre] > GCC hat seine, MSVC hat seine, Intel hat seine, jeder Cross-Compiler hat > ne eigene. Ein Cross-Compiler
-
Thread
Neue 8-Bit Tinys vorgestellt: 417/814/816/817 Gesperrt
Der klassische Microchip TinyAVR.
Tatsache, dass die AT90CAN* mittlerweile auf not recommended for new designs stehen und es für den 128er keinen wirklichen Ersatz gibt. Zur weiteren Zukunft hieß es sinngemäß: wir glauben an AVR, sie werden nicht sterben. Von anderer Stelle habe ich allerdings mitbekommen, dass die Atmel-übernahme
-
Thread
"Universalprogrammer" für Linux
struct ftdi_context *ftdi; struct ftdi_device_list *devlist, *curdev; char manufacturer[128], description[128], serialnumber[128]; int retval = EXIT_SUCCESS; if ((ftdi = ftdi_new()) == 0) { fprintf(stderr, "ftdi_new failed\n"); return
Checking device: %d\n", i); if ((ret = ftdi_usb_get_strings(ftdi, curdev->dev, manufacturer, 128, description, 128, serialnumber, 128)) < 0) { fprintf(stderr, "ftdi_usb_get_strings failed: %d (%s)\n", ret, ftdi_get_error_string(ftdi)); retval = EXIT_FAILURE
-
Thread
Wieso gibt es keine gute Programmiersprache?
Torsten C. schrieb im Beitrag #4784922: >> Was auf ARM64 schnell ist, ist auf AVR langsam /und >> umgekehrt/. > Wenn der p-code gut ist, dann holt er überall raus, was rauszuholen ist. Das ist prinzipbedingt unmöglich. Schaue dir die üblichen Programmierstile für AVR und x86
zwischen beiden nicht unterschieden hat, waren halt alles Daten. So macht's ja am Ende auch der AVR-GCC.
-
Thread
Mikrocontroller von Atmel der I2C und CAN kann
mir den Vorteil gibt am Sensor noch ein paar I/Os zu haben. Programmiert habe ich bisher nur über AVR-Studio mit dem ISP-Programmierer. Ich suche also einen Controller der I2C und CAN von ATMEL und mit viele I/Os (für eventuelle zukünftige Sachen) der verfügbar ist. Außerdem einen Controller von
ist. >Außerdem einen Controller von ATMEL der CAN hat mit möglichst vielen >I/Os. AT90CAN32/64/128 MfG Spess
-
Thread
(Umfrage) Was war eure erste Programmiersprache usw.?
Fortran Turbo Pascal unter CP/M Turbo Pascal unter DOS Prolog unter DOS 8051 Assembler Delphi AVR Assembler AVR GCC
Pascal 3.02 - 6.0 - TASM - Turbo C dann Borland C++ - (selbstgeschriebenen) Assembler für MCS-48 dann MCS-51 - SDCC für MCS-51 - Delphi - Visual Studio Express C++ - Java Script (für Webseiten) - GCC - AVR-GCC und ARM-NONE-EABI-GCC - SDCC für STM8 - Lazarus / Freepascal (einen C64 oder
-
Thread
Mega48 prescaler auf 125kHz gestellt und Programieren geht nicht mehr
Programmern kann man per Kommandozeile oder GUI die ISP Frequenz soweit herunterdrehen, das selbst mit 128kHz getaktete MC, bei denen auch noch die CLKDIV8 Fuse gesetzt ist (resultierend in 16kHz MC Takt) wieder programmiert werden können. Mein AVRISP MkII kann dazu im Dialog von AVR Studio händisch auf
you. C:\Dokumente und Einstellungen\erster\Eigene Dateien\AVRDUDE_Fuses_setzen> avrdude -p m48 -c stk200 -u -t -i 1000 avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.08s avrdude: Device signature =
-
Thread
ATtiny85 mit Arduino ISP flashen
: skipping page 48: no interesting data avrdude.exe: avr_read(): skipping page 49: no interesting data avrdude.exe: avr_read(): skipping page 50: no interesting data avrdude.exe: avr_read(): skipping page 51: no interesting data avrdude.exe: avr_read(): skipping page 52: no interesting data avrdude.exe: avr_read(): skipping page 53: no interesting data avrdude.exe: avr_read(): skipping page 54: no interesting data avrdude.exe: avr_read()
-
Thread
Befehlssatz der bo8-CPU - was ist gut, was ist schlecht
name,"w");if(datei)\ {for(n=0;n<256;n++){for(i=\ 0;i<32;i++){b=mem[1][0xa00\ 0+n*32+i];h=(b>>4&15)+48;i\ f(h>57)h+=39;b=(b&15)+48;i\ f(b>57)b+=39;sr[2*i]=h;sr[\ 2*i+1]=b;}fprintf(datei,"%\ s\n",sr);}fclose(datei);}}} [/c] ;-)
Erklärung, was denn dort genau zu sehen ist. Nein "Ein Demo-Programm" und "Conway's Game of Life 128*128" ist nicht ausreichend.
-
Thread
avrdude , mega8a lässt sich nicht programmieren.
avrdude.exe: Send: 0 [30] [20] avrdude.exe: Recv: . [14] avrdude.exe: Recv: . [10] AVR Part : ATmega8 Chip Erase delay : 10000 us PAGEL : PD7 BS2 : PC2
---- ---- ------ ------ ---- ------ ----- ----- --------- eeprom 4 20 128 0 no 512 4 0 9000 9000 0xff 0xff Block Poll Page Polled Memory Type Mode Delay Size Indx
-
Thread
Atmega8, DCF an Interrupt. Ungültige Signaldauer mit externem Quarz
DCF_Debugging * * Created: 19.09.2016 17:57:22 * Author : devpap */ #include "uart.h" #include <avr/io.h> #include <avr/interrupt.h> #include <stdlib.h> #include <stdio.h> volatile uint16_t g_millis; /* Zähler für Millisekunden der kurzen Signale 0 oder 1*/ volatile uint16_t g_breakMillis
und darüber nachdenke. [c] /* * dcf_time_evaluation_2.c * * Created: 08.10.2016 15:26:48 * Author : devpap */ #include "uart.h" #include <avr/io.h> #include <avr/interrupt.h> #include <stdlib.h> #include <stdio.h> uint8_t g_dcfRegisterFlags[2]; #define DCFACTIVE 0
-
Thread
ItoA mit Uint64_t
1cd bm03a.elf > [/c] > > bm02a: meine template Variante (auch die schnellste) > bm03a: aus avr-libc Lass einfach mal "constexpr uint8_t Base = 10;" weg und übergib Base als Parameter, das mach den Vergleich mit der avr-libc etwas realistischer.
das dieser Thread wieder etwas belebt wird. Ich werde bald ein anderes Zahlenformat benötigen. 128-bit (64.64) signed fixed-point arithmetic. https://github.com/fahickman/r128 Da dürfte es sinnvol sein, für dieses Format meine Routinen zu erweitern.
-
Thread
AVR und der Umgang mit C++
optimization. s = optimize for size. # (Note: 3 is not always the best optimization level. See avr-libc FAQ.) OPT = s # Debugging format. # Native formats for AVR-GCC's -g are dwarf-2 [default] or stabs. # AVR Studio 4.10 requires dwarf-2. # AVR [Extended] COFF format requires
gemerkt haben. Und wenn ich dich schon da hab, vielen Dank für die phantastische Arbeit am GCC AVR-Backend.
-
Thread
AVR Mega1284, Fontarray zu groß -> wie in Flash?
basteln und möchte dafür eine Fonttabelle auf meinem Mega1284 speichern. Dieser hat 16kB SRAM und 128kB Flash. Leider scheitern meine Versuche die Arrays auszulagern. PROGMEM ignoriert der Compiler (AVR Studio 7) vollkommen, bei EEMEM scheint er einen Teil auszulagern weil beim Compilieren der EEPROM
Mein WinAVR2010 macht das so korrekt (ins Flash) [c] #ifndef __FONT_H #define __FONT_H #include <avr/pgmspace.h> const uint8_t PROGMEM F6x8[][6] = { { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
-
Thread
AVRDUDE, STK500 Bootloader und XMega
und führt einfach dein Programm aus. Ich habe einen ISP MKII Clone, der funktioniert auch unter AVR-Studio7, ich musste nur die Firmware an der Stelle umschreiben in der die Version der Firmware drin steht, denn diese Nummer erwartet AVR-Studio. Wenn die falsche Nummer vom USB MK-II zum AVR-Studio übertragen wird verweigert das AVR-Studio die Arbeit und liest den Chip auf der Prototypenplatine auch nicht aus. Die Fuse für den Bootloader kann man aber auch manuell per AVRdude setzen.
-
Thread
Schaltung korrekt für LED Fader mit ATMega32?!
geeignet ist, es ist gross und hat zuwenig PWM Ausgänge. Spar dir den für andere Basteleien. Ein z.B. Mega48/88/168/328 hat schon mal 6 fertige PWM Kanäle. Der Tiny461/861 hat 6 Kanäle (davon 2 nur als Software) und ein recht kleines Gehäuse, was dem Einbau zugute kommt.
//************************************************************************** #include <avr/io.h> #include <avr/pgmspace.h> #define F_CPU 8000000L #include <util/delay.h> #define STK500 0 #if STK500 // inverted PWM on OC1A for STK500 #define INVERT_PWM (1 << COM1A0) #else //
-
Thread
Welcher µC für meinen Zweck?
Arm (M3) ist doch noch schlimmer als Arduino. Nimm direkt einen 8-Bit AVR, GCC-Tutorial dazu gibt es hier auf der Seite.
Cypress. In vielen anderen Geräten sind PIc's verbaut. In unseren Steuerungen ist Infineon sein. AVR's sehe ich eher selten.
-
Thread
CAN Bus Alternative für Arduino
. Firmwareupdate). Die Auswahl an AVRs ist leider nicht sehr groß, z.B.: ATMEGA32M1 oder AT90CAN128.
Motorraum sind das meist -40°...+125°. >> Ist auch klar - wie ich geschrieben habe, können die AVR-UARTs LIN nicht >> komplett. Dafür ist AVR (abgesehen von speziellen Automotive-Produkten, >> siehe zB den ATA6613C) ungeeignet. Es gibt aber genug Alternativen. Auch >> 8051-Derivate werden hier
-
Thread
Display: Unterschied zwischen character mode und graphic mode?
Byte des Strings nach R0 lesen ist bloß ungenügend klar formuliert Zitat: "http://www.avr-asm-tutorial.net/avr_de/testlpm.html" lesen: LPM ; Lese das Byte, auf das Zeiger Z zeigt in Register R0 Zufrieden?
Operanden. Sieh dir mal die Tabelle '3. Conditional Branch Summary' in www.atmel.com/images/Atmel-0856-AVR-Instruction-Set-Manual.pdf an. Einfach so: [avrasm] ldi r16,10 aaa: dec r16 brne aaa [/avrasm] MfG Spess
-
Thread
Unklarheiten ATmega Programmierung
Mikrocontrollerprogrammierung ist mir nicht fremd. Ich habe vorher einiges auf der STM32-Plattform gemacht. Deswegen ist mir AVR und ATmega etwas fremd. Es handelt sich um den ATmega48PA. Was der Quelltext macht ist für mich kein Problem, es hängt aber etwas an den ATmega-spezifischen Einstellungen die man vornehmen muss.
die Taktfrequenz einstellen. Nun wird der uC aber mit folgender Fuse programmiert: INTRCOSC_128KHZ_6CK_14CK_65MS Laut Datenblatt ist das interne 128 kHZ Oszillator. Beim STM32 kann man ebenfalls einen niedrigeren Takt einstellen und diesen dann schnließend hochteilen. Geht das hier durch den
-
Thread
Physikprojekte
man vielleicht einen Instrumentverstärker mit folgender Analog Spitzenwert Schaltung dem internen AVR ADC vorschalten. Dann kann sich der ADC Zeit lassen. Da der interne AVR ADC viel schneller ist, wäre es möglicherweise auch ausreichend den Instrumentverstärker einfach dem AVR vorzuschalten und
eine Spannungsamplitude von 38 mV. Die damit berechnete Flussdichte des Erdmagnetfelds liegt bei 48 µT. Das ist erstaunlich nahe am Sollwert von 50 µT hier in Graz, Heureka...
-
Thread
bitte um hilfe bei switch case aufbau
invertieren umsetzen grüsse huber [c]/* * GccApplication2.c * * Created: 09.10.2016 14:48:27 * Author: HUBER M */ #include <avr/io.h> #define tasterpins (1<<PD5) int main(void) { DDRC &= (1<<PC5); //Eingang PORTC = (1<<PC5); //Pullup Eingang DDRD =
an PC5 drücke sollte PD0 angehen oder ? [c]/* * GccApplication2.c * * Created: 09.10.2016 14:48:27 * Author: HUBER M */ #include <avr/io.h> #define tasterpins (1<<PC5) int main(void) { PORTC |= (1<<PC5); //Pullup Eingang DDRD |= (1<<PD0); //Ausgang LED void tastertest
-
Thread
avrdude schreibt keine Fuses bei ATmega8
Und so: [c] "avrdude -c avr911 -P/dev/ttyUSB0 -p m8 -U hfuse:w:0xD9:m -U lfuse:w:0x3F:m" [/c] ?
Hallo! Habe nun von myAVR das myAVR-ProgTool heruntergeladen und auf Windows 7 versucht die Fusebits zu schreiben. Es hat tatsächlich geklappt. Das Programm kann die Fusebits aber nicht auslesen, deshalb wollte ich mit Burn-o-mat
-
Thread
MP3 Player / aktuelle Hardware gesucht
Wennes grob willst, dann eben AVR in DIL und dazu nen VS1011 in SOIP (gröberes SMD): http://www.reichelt.de/VS-1011E-S/3/index.html?&ACTION=3&LA=446&ARTICLE=54522&artnr=VS+1011E-S&SEARCH=vs1011 Soll MP3 in Software dekodiert werden
für die Playbuffer. Wenn man alle Arbeitsvariablen in den CC RAM (64kB) verlegt, hat er gerade mal 128kByte für die Audiopuffer, so das es mit SD Karte ruckelt. Viel besser geht es mit echten USB Sticks, die deutlich schnelleren Zugriff haben.
-
Thread
NXP Cortex-M µCs: Toolchain, Makefile, etc
über SWD und GDB? 2.3) Libraries Ich will zwar den µC "bare-metal" programmieren, ähnlich wie einen AVR, aber die Runtime/Startup-Files/Linkerfiles wären schon hilfreich. Im Prinzip möchte ich mir ein Softwarepaket ähnlich WinAVR zusammenschustern, bei dem ich wirklich mit int main(){/*...*/} loslegen
einsetzen möchtest, bleibt viel Zeit für > den Prozessor. Naja, ich komme immer noch aus der AVR-Ecke, mit den Größenordnungen im Kopf die dort herrschen. Nur kurz zu den Sensoren, dass es eben nicht ganz einfach ist: - 48 SPI-ADCs (bzw. weniger ADCs mit der gleichen Channel-Anzahl) - 32 SPI-ADCs
-
Thread
Mechatronische Megatron-Schultüte
Wo kann man den AVR335: Digital Sound Recorder with AVR and DataFlash in Deutschland bestellen? Entweder google ich grade verkehrt oder ich find keinen Anbieter bei dem man den AVR335 direkt bestellen kann.
searchweb201602_3_10037_10017_405_404_407_10033_406_10032_10040,searchweb201603_1&btsid=813de4a2-2deb-48f3-a315-9fa195c4d6c5
-
Thread
DS 1307 via I2C an atmega328-brauche Hilfe
anzusprechen. Dazu wollte ich als ersten Test in eines der RAM-Register der RTC einen Wert schreiben (48) (Adresse des Registers ist 0x08) und den dann wieder auslesen und via LCD ausgeben (in der Hoffnung das eine 1 rauskommt). Verschaltet habe ich das folgendermaßen: _____ ______
|__________|--|_____| CPU-FREQ ist 1mHz als Programm auf dem avr habe ich zum schreiben der Daten folgendes: void write_RTC() { power_twi_enable(); PORTC |= (1<<PORTC5) | (1<<PORTC4); TWBR = 2; _delay_ms(5); TWCR = 0xA4; //start while
-
Thread
[V] Compiler-Lizenz (Dongle): MikroElektronika "mikroC PRO for AVR"
/get/1939/dongle_mikroc_pro_for_avr_v200.pdf die Installationsdatei kann man sich einfach herunterladen: --> http://www.mikroe.com/mikroc/avr/ --> http://www.mikroe.com/downloads/get/2351/mikroc_pro_avr_v611_setup.zip der Neupreis
ATtiny261 ATtiny261A ATtiny4313 ATtiny43U ATtiny44 ATtiny44A ATtiny45 ATtiny461 ATtiny461A ATtiny48 ATtiny84 ATtiny85 ATtiny861 ATtiny861A ATtiny87 ATtiny88 ATxmega128A1 ATxmega128A3 ATxmega128D3 ATxmega16A4 ATxmega16D4 ATxmega192A3 ATxmega192D3 ATxmega256A3 ATxmega256A3B ATxmega256D3
-
Artikel
AVR-Bootloader mit Verschlüsselung von Hagen Re
interpretiert. Unter normalen Umständen dürfte das aber kein Problem sein da die meisten Tools wie WinAVR GCC oder AVR Studio solche HEX Files immer mit linear nachfolgenden Addressen erzeugen. 06.05.2008 13:52 Der Bootloader relevante Teil befindet sich auch in der AVRootloader.dll. Einbau in eigene Delphi
zur Anpassung an AVR-Studio 4.16
-
Thread
flexibles RGB Led Display
Gegenprobe: Wenn wirklich 2222 Befehle pro LED und Frame zur Verfügung stehen würden, müsste dein AVR mit 2222 Zyklen * 5400 LED * 30 fps = 360 MHz getaktet sein... Es stehen beim AVR pro LED inkl. Ausgabe nur 20 MHz / 5400 LED / 30 fps = 124 Zyklen zur Verfügung. Da die ATMegas nur eine SPI haben
Framebuffer, alles auf einem PC platzsparend montiert - nur wie man diesen Framebuffer vom PC zum AVR rüberkriegt ist dir noch nicht ganz klar... Ohne Framebuffer gibt es ganz einfach keine Animation. *Punkt*. Und dieser Framebuffer kann auf einem AVR *nicht* bearbeitet werden. *Punkt*. Es