-
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
-
Thread
Mega328p - maximale I2C Geschwindigkeit?
stelle - was stimmt nun? Hab ich mich verrechnet? http://www.atmel.com/images/atmel-8271-8-bit-avr-microcontroller-atmega48a-48pa-88a-88pa-168a-168pa-328-328p_datasheet_complete.pdf
Für höhere Frequenzen hat sich SPI durchgesetzt. Z.B. der S25FS128SAGMFI100 (16MB Flash) kann bis 133MHz.
-
Thread
Seltsames Verhalten von avrdude für EEprom Programmierung
Watch-dog Interr 75 70 74 0A 0D upt.. < /dev/ttyUSB4 48 65 6C 6C 6F 20 57 6F 72 6C 64 20 66 72 6F 6D Hello World from 20 46 6C 61 73 68 21 0A 0D Flash!.. < /dev/ttyUSB4 48 65 6C 6C 6F 20 57 6F 72 6C 64 20 66 72 6F
Watch-dog Interr 75 70 74 0A 0D upt.. < /dev/ttyUSB4 48 65 6C 6C 6F 20 57 6F 72 6C 64 20 66 72 6F 6D Hello World from 20 46 6C 61 73 68 21 0A 0D Flash!.. < /dev/ttyUSB4 48 65 6C 6C 6F 20 57 6F 72 6C 64 20 66 72 6F
-
Thread
C Programm zum Einlesen max.16 stelliger Dualzahl und Ausgabe in Dezimalzahl
TMOD |=0x20; TH1=0xfd; TR1=1; TI=1; /* Bildschirm löschen */ printf("\x1b\x48\x1b\x4a"); /* Begrueßungstext */ printf("Binaerzahlenumrechnung in eine Dezimalzahl \n\n"); printf("\n\nBitte eine max. 16 stellige Binaerzahl eingeben mit der Endung b: ");
> Bis auf %d sieht das richtig aus. Ich zittiere aus http://www.nongnu.org/avr-libc/user-manual/group__avr__stdio.html#gaa3b98c0d17b35642c0f3e4649092b9f1 diouxX The int (or appropriate variant) argument is converted to signed decimal (d and i), unsigned octal (o), unsigned
-
Thread
Mikrocontroller mit I/O Latch koppeln
Olaf schrieb im Beitrag #4581253: > War in der Spielkonsole damals wirklich ein MCS48 als Hauptprozessor > drin? https://de.wikipedia.org/wiki/Philips_G7000
aus dem Eprom und analysierst sie? Es sind nur 8kB auf der Z80 Seite und vermutlich 2kB auf der MCS48 Seite. Wenn es dir nur um dir Kommunikation geht, ist das eine Fingerübung für ein Wochenende.
-
Thread
Suche 16 bit CPU mit externem Buszugriff
SDkarte verwenden, in den > richtigen schnellen Speicher kopieren, fertig. Na klar, schnell mal ne 128MB SD Karte ins 16K SRAM vom AVR kopieren. Wie konnte *das* der TO übersehen .... dass das so einfach geht.
Nur die Pins für Byteselektion kommen dazu. Beim Z8001 waren es mehr Adressleitungen und deshalb DIL-48.