-
Thread
Dynamische Strukturen avr-konform
> AVR gcc unterstützt keine Objektorientierung ! So'n Quatsch. Davon abgesehen, dass man objektorientiert auch in C programmieren kann, ist C++ sehr wohl (mit Einschränkungen) unterstützt.
Wegen Comilerschaltern einfach mal in der Doku nachsehen und im Fall des Falles kann auch alle Optimierung ausgeschaltet werden.
-
Thread
Devision und Restbildung
Stelle korrekt angezeigt. Die 1. bis 3. Stelle verändert sich nicht. Was mach ich falsch? C, AVR GCC Bert
Rückgabewert zum C89-Standard gehört, ist das auch kein unportables Gefrickel. Nachtrag: Hab dem GCC mal wieder zu wenig zugetraut. Mit Optimierung macht er dasselbe aus mV/1000, mV%1000 ... also lohnt es nicht, umständlich mit der "div"-Funktion zu hantieren
-
Thread
bringt einfache Zeigerei einen Performance-Vorteil?
konventionelle Art gelesen werden, also etwa so: [c] x = array[i]; [/c] Bringt es mit dem Gespann GCC / Atmega überhaupt irgend einen Vorteil, wenn man das so umschreibt? [c] x = *(array + i); [/c] Ich vermute NEIN, wollte aber sicherheitshalber mal fragen...
> konventionelle Art gelesen werden, also etwa so: > x = array[i]; > Bringt es mit dem Gespann GCC / Atmega überhaupt irgend einen Vorteil, > wenn man das so umschreibt? > x = *(array + i); Das ist exakt das gleiche. Beide Schreibweisen sind zu 100% äquivalent, und das hat auch nichts damit
-
Thread
Ist Arduino verpönt?
und Großes vorhat sollte dieser jemand den qualvollen Weg über Assembler (für die Struktur) und AVR-GCC nehmen. -SE
Großes vorhat > sollte dieser jemand den qualvollen Weg über Assembler (für die > Struktur) und AVR-GCC nehmen. Das ist ja gerade das Problem: Die Einstiegshürden auf dieser Ebene werden nicht niedriger. Da würde ich schon eher mit einer Arduino-Entwicklung anfangen und, sobald es läuft, zwecks Optimierung
-
Thread
lpc2129 GCC ISR-Verwaltung
Welche ENTRY/EXIT Macros? GCCs gibt es viele. GCC hat nach wie vor einen Bug bei Routinen, die via Compiler als Interrupt-Handler deklariert werden. Tritt nicht immer auf, steckt aber nach wie vor drin. ARM und verschachtelte Interrupts: http://
Beim arm-elf gcc zumindest bis Version 4.1.x (habe mit 4.2.0 noch nicht viel gemacht) betrifft meines Wissens Code, der mit Interwork-Option compiliert wird und bei dem ISR mit dem interrupt function-attribute versehen
-
Thread
frage zu rjmp beim GCC/ATmega162
Hi ich frage mich erstens warum Inline-ASM für sowas wie ein Pin-Toggle anwenden? Der GCC macht aus PORTA^=1<<5; 254: 8b b3 in r24, 0x1b ; 27 256: 90 e2 ldi r25, 0x20 ; 32 258: 89 27 eor r24, r25 25a: 8b bb out 0x1b, r24 ; 27 was mindestens
Hmmm ich habe folgenden Compileraufruf gemacht: avr-gcc -S -Wall -O2 -mmcu=atmega162 -c main.c und es kommt tatsächlich ein Listing main.s heraus. Leider ist die Zuordnung C-Quelltest -> Assembler nicht zu erkennen. Hab ich da wohl noch ne Option vergessen
-
Thread
Autodetect Arraygröße bei Definition
gcc frisst auch ein Array, das kein String ist: [c] #include <stdio.h> int main(void) { const int foo[] = {123, 456, 789}; int le = sizeof foo / sizeof foo[0]; for (int i = 0; i < le;
Tom K. schrieb im Beitrag #3453945: > gcc frisst auch ein Array, das kein String ist: Nicht nur gcc. Es ist völlig legitim, bei der Definition eines Arrays die Größenangabe wegzulassen. Die Größe des Arrays ergibt sich dann aus der Anzahl
-
Thread
Avr Studio 4 und die neue AVR Toolchain - So funktionierts!
an. Es steht hier im Normalfall "-gdwarf-2". Hiermit wird das Format Dwarf Version 2 erzeugt. Die GCC-Entwickler erlaubten sich aber ab einer bestimmten GCC-Version auch Erweiterungen aus den Versionen 3 und 4 mit einzubringen...das bracht dem AVR Studio 4 das Kreuz! Man muss ZUSÄTZLICH folgendes
und dem Studio 4.19 funktioniert es. Danke für dem Tipp Andi. --- Der Thread sollte nach GCC verschoben werden, dort sinkt er langsamer nach unten.
-
Thread
EEMEM landet aber im RAM
von EEMEM im ROM landet und beim Start vom versteckten init-code ins RAM kopiert wird. Ist die Optimierung nicht angeschaltet oder hat das Array einen vorgeladenen Wert, den du uns nicht zeigst? Den so muss er den Inhalt eigentl. nicht kopiert, sondern nur mit 0 initialisiert werden.
Keine Ahnung, ob es jetzt am Studio 6.0, am WinAVR/GCC liegt, ich mache es jetzt so: [c]EEMEM uint8_t static t[1024];[/c] Der Speicherverbrauch fürs EEPROM wird zwar jetzt nicht mehr angegeben, ist mir aber auch wurscht.
-
Thread
Wie komfortabel ist C auf ATmega?
Also für den AVR gibt es einen gcc, ich würde an deiner stelle gleich nach winavr suchen, da sind alle programme zusammen. ich hab bisher mit zwei debuggern gearbeitet, einmal den von atmel, avrstudio 4.x und vmlab, damit kann man auch
den c18 von microchip selber ist frei, man kann nur nicht die zusatzfunktionen verwenden(bessere optimierung) ich habe mit dem AVR angefangen und finde es ist ein guter einstiegsmicrocontroller, sowohl als C als auch assambler mfg Azrael
-
Thread
Einfache "for" Schleife funktioniert nicht
nicht > heißt das es deswegen nicht funktionieren darf. Doch, genau das. Insbesondere mit Optimierung. Ansonsten überleg mal, was eine Beendigung von main() für einen Sinn ergibt.
lernen ;-) Hat mit µC nichts zu tun, ist eine C-Compiler-Sache. Wenn Du im Visual Studio die Optimierung einschaltest oder unter Linux z.B. mit "gcc -O2" compilierst wird sehr wahrscheinlich auch nicht passieren was Du wolltest.
-
Thread
Attiny45 Programmierung
>ob ich den attiny auch mit C programmieren kann http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial Rest: Google "Attiny 45 Arduino programmieren" Frage zu den Pins steht im Datenblatt oder auch im ersten Link.
triffts schon eher. Im vergleich zu irgendwelchem durchschnittlichen Standardcode wird man nach C-Optimierung sicher keine 3-4 fache "Leistung" durch Assembler bekommen.
-
Thread
Makefile und flags für Raspberry 4 64bit
CPU nicht am Anschlag ist ("top" betrachten) sollte das völlig egal sein. Die wichtigsten Optimierungen kommen eh durch das "-O3", und das ist ja drinnen geblieben.
Wo hast Du das her? > Wie kann ich das lernen (um das Compiling verbessern zu können)? https://gcc.gnu.org/onlinedocs/gcc-11.2.0/gcc/AArch64-Options.html#g_t-march-and--mcpu-Feature-Modifiers -march=native oder -mtune=native würden den Compiler erkennen lassen, auf welchem System er läuft, und
-
Thread
Ernstzunehmende Programme in BASCOM
ist aber nicht mehr mit einem Ein- oder Zweipasscompiler machbar. Das ist 'ne lahme Ausrede. Ein GCC ist auch ein Einpasscompiler. Beweis: [pre] % avr-gcc -Os -x c -mmcu=atmega8 -o - -S - #include <avr/io.h> #include <avr/interrupt.h> uint16_t adcval; ISR(ADC_vect) { adcval = ADC;
sondern das ist eine Art Standard-Prolog/Epilog, durch die Sonderrolle dieser Register für den AVR-GCC bedingt. Ja, das ist verschenktes Optimierungspotenzial.) Wenn GCC jetzt ein BASIC-Frontend hätte, könnte er auch in dieser Sprache vergleichbares Optimierungspotenzial anbieten, denn die
-
Thread
STM32F4 GCC erzeugt kein DSP
: 32 ± (32 x 32) = 32 MLA, MLS Was läuft hier falsch? Was muss Ich anders machen? Oder ist der GCC derzeit nicht in der Lage DSP zu erzeugen? Grüße vom Bodensee (es regnet), Jan
für den entscheidenden Hinweis. Hab mich in den ganzen Dokus total verannt und war kurz davor den gcc auszuchecken um zu gucken was der so treibt. Grüße vom Bodensee, Jan
-
Thread
IDE mit Fokus auf Assembler für Umsteiger AVR -> STM32
benötigt aber 3 um zu reagieren. Möchte mal sehen, ob du das genauso gut optimieren kannst wie der GCC ;) mfg
ist. Hier hat der gcc noch sehr viel Luft, um wirklich brauchbar zu werden. Andere können das sehr viel besser... Das Problem beim gcc ist wohl: die Entwickler wollen dies offensichtlich garnicht. Nur verwichste Ideologen
-
Thread
C programmieren wie die grossen Jungs
falsch man "programmieren" kann und es doch noch irgendwie funktioniert... Aber solbald man die Optimierung im Compiler einschaltet und der Compiler "XYZ ist nicht definiert" aus dem Standard ernst nimmt, kracht es.
gcc entschliesst sich bei [C] int main() { for( unsigned char i = 0; i < 10; ++i ) Ziffer[i] = '\0'; foo( Ziffer ); } [/C] das i zu eliminieren und das ganze mittels Z-Pointer und
-
Thread
Codename Brillo: Googles /besonders/ kompaktes Betriebssystem für das Internet der Dinge
und natürlich auch den verrücktesten video-codec erwartet. Im übrigen schau dir an was z.B. der GCC so alles optimiert... das schaffst du NIE und in ASM... habe da gerade so ein Stück software bei dem's auf Speed ankommt... Auf das loop-unrolling das der gcc sich überlegt hat wär ich nie gekommen.
Compilerbau. Viele tausend Softwareexperten haben sie gelesen, verstanden und Wunderwerke wie den GCC entwickelt. Man kann auf diese gesammelte, geballte Know-How der Compilerbauer zugreifen oder das Rad Tag für Tag immer wieder neu erfinden. Erfindest du auch Bohrmaschine und Säge jedes Mal neu?
-
Thread
Externes RAM am STM32F4 - wie Variable drin platzieren?
im Debugger sah für falsch. Hallo A.K., volatile hatte ich gewählt, damit mich die Code-Optimierung nicht bei meinem Schreib-/Lese-Test stört.
Startadresse schreiben Genaues vielleicht hier: http://www.scoberlin.de/content/media/http/informatik/gcc_docs/ld_3.html
-
Thread
int byteweise setzen
auf die neue > (wie meins). ;-) Jepp. Zu Beachten auf AVR ist allerdings [[Compilerfehler#avr-gcc]]
, sollte man die Finger lassen. Früher oder später wird dann wieder rumgeheult "Compilerfehler: GCC macht falschen Code bei Optimierung". Johann
-
Thread
Geeigneter Cortex M3 für Projekt gesucht
es da denn mit der Unterstützung ähnlich wie bei der STM32 Beischreiibung aus? Sprich wenn ich mit GCC und Eclipse arbeiten möchte? Gruß Carsten
Die IDE zum LPCxpresso basiert auf Eclipse und verwendet auch den gcc Compiler (in angepasster Form? Zumindest die Standard Libraries sind angepasst, nennt sich dort redlib). Ob man ein eigenes Eclipse mit GCC so einfach verwenden kann weis ich nicht. Den das Problem
-
Thread
wie "erzwinge" ich eine 16bit*16bit = 32bit Multiplikation?
Ich caste mir mit AVR gcc gerade den Wolf, aber es will nicht klappen: Ich brauche eine Multiplikation von zwei uint16_t, das Ergebnis davon hat 32 bit Breite. Von diesem will ich ferner nur die obere Hälfte weiterverwenden
der Thread ist etwas entstellt, wo sind denn die Postings von Andreas Kaiser (a-k) hin? Zu der gcc-Optimierung: Sowas kann man nur bauen, wenn es einen Weg für den Compiler gibt das zu erkennen. Wie sagt man ihm also korrekt, das er 16*16->32 multiplizieren soll? Mich wundert offengestanden schon
-
Thread
If-Phaenomen
Guten morgen! Schalte mal die Compiler-Optimierungen aus und probier nochmal. Gruß Martin
klappt es auch. Weitere Møglichkeiten findest du hier: http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Zugriff_auf_IO-Ports.
-
Thread
sram benutzen, aber wie?
hey! kann mir jemand den zugraff aufs interne 1k sram des mega8 mit c mailen? verwende gcc (winavr 2006) und fange mit den asm routinen oben nix an. wie schreib ich ein byte (aus einer char-variable) ins sram und wie krieg ichs wieder raus? (in c!) danke und gruss, peter
im internen SRAM. Die Adressvergabe passiert automatisch. In einigen Fällen können sie durch Optimierungen durch Register ersetzt werden oder gar ganz wegfallen.
-
Thread
Problem mit abfrage ob "I" in SREG gesetzt ist ...
..) -------------------------- Geht es evtl besser anders/Eleganter ? Ich benutze WinAVR / gcc.
Nein, eine Optimierung auf BRIE hat offenbar noch keiner geschrieben. Sollte aber eigentlich machbar sein.
-
Thread
Atmel Studio 7 Variablenverwaltung
wird er letzte Wert (11) in die Variable zurück geschrieben. Du hast zwei Möglichkeiten, diese Optimierung zu unterdrücken: a) Durch Deaktivierung sämtlicher Optimierungen (gcc Parameter -O0) b) Indem du der Variable das Schlüsselwort "volatile" voran stellst. > Testweise habe ich in Zeile 48
-
Thread
STM32F103 Bluepill mit 128kb lässt sich nicht flashen
1.12 klappt nicht mehr, der Code ist > nicht mehr lauffähig. LTO for STM32 is broken in newer gcc-arm-none-eabi releases.
Frank M. schrieb im Beitrag #6758700: > LTO for STM32 is broken in newer gcc-arm-none-eabi releases. gcc-arm-none-eabi 9 great support for LTO. See if there is a check "Use Link Time Optimization" on the Linker tab for target Release.
-
Thread
DS1820, DS18B20 in C
wenn man ASCII-Zeichen >127 reinschreibt. Peter P.S.: Könnte das ne neue Macke des AVR-GCC 4.1.1 sein ?
Versuch mal: avr-gcc -xc Peter
-
Thread
Cortex M7 und Cycle Counter (DWT)
Falko J. schrieb im Beitrag #4280637: > Optimierung ist übrigens aus... Das dürfte dein Problem sein. Die Funktionsaufrufe kosten Zeit.
Aber mit Optimierung hat sich nichts geändert. Das inkrementieren der Variable ist aber auch ohne Optimierung nur ein assembler Befehl. Trotzdem erhöht sich der Cycle counter um 11, wenn in Debugger genau diesen einen
-
Thread
Quellcode vom µC ziehen?
"Decompiler" funktionieren nur in der Theorie, mit einfachen Programmen die ohne Optimierung übersetzt wurden. Sobald Optimierungen eingeschaltet waren (z.B. -O2 oder -Os beim gcc), hat das Decompilat überhaupt nix mehr mit dem ursprünglichen Source-Code zu tun.
-
Thread
USB bei VMBOx Frage
auch mit allen MSP430 IDEs und Debuggern verwenden, einschließlich CCE 4.0 und dem sowieso freien GCC+GDB.
Compiler und dem NoIce mit Olimex JTAG Tiny arbeiten. Es ist ein altes Design mit einer keinen CPU. Der GCC Compiler liefert dafür viel zu großen Code. Er passt überhaupt nicht rein trotz scharfer Optimierung. Der Compiler und NoIce selber geht in der VM, nur der Olimex JTAG Tiny läßt sich nicht sicher
-
Thread
delay Funktion in AVR Studio
richtige Oszillatorfrequenz eingestellt? Muss sehr nahe bei den Optimierungen sein ;)
avr-gcc.exe -mmcu=atmega16 -Wall -gdwarf-2 -std=gnu99 -DF_CPU=14745600UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT main.o -MF dep/main.o.d -c ../main.c Hier, nur
-
Thread
delay: nop() als Schleife ausführen?
assembler schon gar nicht. Wie weit man dem Disassembler trauen kann (compiliert mit -S), weiß ich nicht. gcc und ohne Optimierung. Ich nutze die aktuelle LPCXpresso-Umgebung auf einem Cortex M0, 12 MHz. Mein bisher bester Versuch [c] inline void delay_us(uint32_t us) { LPC_TMR32B1 ->TC = 0;
das auch so erkennt und entsprechend optimiert. Aber natürlich Quatsch und ohne eingeschaltete Optimierung ja sowieso unmöglich. - Zuerst dachte ich, daß der mögliche Überlauf des frei laufenden Timers nicht berücksichtigt wäre. Ist aber ganz schön clever gemacht! Einziger Nachteil durch die Konstanten
-
Thread
Anfänger: While-Schleife auf Atmega8
Atmega8 aufgebaut. Das Testprogramm funktioniert einwandfrei, und jetzt wollte ich, bevor ich das GCC-Tutorial durchgehe, noch einmal meine Uralt-c-Kenntnisse auffrischen. An PC0 und PC1 hängen 2 LEDs und die wollte ich ganz doof durch 2 while-Schleifen, in denen auf 60000 gezählt wird, abwechseln
Langsamer ja, liegt daran das es noch nie richtig funktioniert hat. Grund: Optimierung. Für Zeiten würde ich immer einen Timer nehmen, die delay Funktion kenne ich nicht. Fürs basteln reicht es die Compiler Optimierungen ausschalten. Mit der Option -O0. Alternative kannst solche
-
Thread
Was macht bitte der GCC da?? Compilerbug?
Hallo an alle, Ich benutz das WinAvr 20070525 Packet mit dem GCC 4.1.2. Optimierung: s Ich hab eine Funktion geschrieben. Sie ist zwar noch nicht fertig, aber egal. [c] void sht_raw_to_physical(sht_val *temp, sht_val *hum) { char tem[2]; temp->_int -
-
Thread
High Level Synthese aus C Code Spielerei oder ernste Anwendungen?
Es ist halt immer schwierig, die Industrie von bestehenden Frickellösungen wegzukriegen, und Optimierungen sind auch oft gar nicht erwünscht (könnte ja eine Stelle wegfallen).
Vektor-ALU besser gleich manuell programmiert anstatt trial&error in C, und darauf hoffen, dass die Optimierung richtig greift. Mit GCC hätte man ja ansich die Möglichkeiten, wenn die RTL/gimple-Geschichte so flott von der Hand ginge, sich seine HLS selber zu bauen und Datentypen und Arithmetiken in Abhängigkeiten
-
Thread
Probleme beim Debuggen mit SW4STM32 und und F7Disco
du? Liest du eigentlich die Postings? Bei deinem ersten Versuch übersahst du, dass ich die Optimierungen ausgeschaltet habe, und schlägst vor die Optimierungen auszuschalten. Nun fragst du nach der Software, steht auch im Eröffnungspost, SW4STM32. Quelltext bringt auch nix, weil es Quelltextunabhängig
Semihosting nichts anfangen > kannst. BTW was bitte hat Kenntniss über die Einstellung der Optimierungen mit Semihosting zu tun?
-
Thread
Befehle werden übersprungen
> Offensichtlich werden sie wohl wegoptimiert. Weshalb man fürs debuggen günstigerweise die Optimierung abschaltet.
Hat der GCC mittlerweile eigentlich einen Deppenmodus der die wilkürliche Verwendung von == und = automatisch korrigiert und aus einem Vergleich eine Zweisung und Vice versa macht??
-
Thread
triviales Problem mit include - aber ich sehe es nicht
P.s.: Optimierung ist ausgeschaltet (None -O0)
Aufruf "gcc -v ..." hilft auch.
-
Thread
printf (" \n"); geht printf (" %s, %d \n", string, int); geht nicht
Flash-Speicher lassen und auch von dort ausgeben (siehe http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Array_aus_Zeichenketten_im_Flash-Speicher ). Ich persönlich verzichte auch immer auf printf etc. weils einfach den ganzen code so aufbläht.
beiden printf()s wird der Compiler vermutlich in puts() umwandeln (was aus seiner Sicht eine Optimierung ist, da puts() ja schneller geht als printf()). Wie sehen denn die genauen Compiler- und Linker-Kommandozeilen aus? Übrigens: [[Bildformate]] Screenshot als JPG sieht einfach grässlich
-
Thread
GPL V3 und gekaufter Code
explizit noch eine Ausnahme bei ihrer Lizenzierung, die die Syscalls ausschliesst. Ganz ähnlich wie gcc auch, für die mit ihm kompilierten Programme. PS: Es ist "Linus Torvalds", nicht "Linus Thorwalds"
mehr wie das ausging. Vor etlichen Jahren bin ich bei deren 16-Bittern dem begegnet. Sie hatten GCC um eine proprietäre Optimierung angereichert, aber IIRC lief diese als separates Programm, closed Source. Ebenso die Lizenzprüfung.
-
Thread
Interesse an Alternative zu BASCOM?
OOP sein soll. Tendenziell wohl eher "nur" ein grafischer Editor, der am Ende C++-Quelltext für den gcc-Compiler ausspuckt.
Abhilfe schaffen, ist dann aber immer noch > Lichtjahre von dem kompakten Code weg, den z.B. der gcc generiert. genau aus dem grund würde ich an deiner Stelle einen VB->C compiler bauen. Das hat den riesen Vorteil, dass du dich 'nur' um die Codegenerierung und die Objekte kümmern musst. Die optimierung
-
Thread
C: Prüfen, ob Variable in Intervall
...tatsächlich ist es genau der Code, den GCC für folgende Vergleiche erzeugt: [c]void f (void); void test (int c) { if (c >= 50 && c <= 100) f(); }[/c] Hier avr-gcc: [avrasm] test: sbiw r24,50 sbiw r24,51 brsh
Dinge verfügbar wären, von denen niemand außer Wilhelm weiß, wo sie herstammen. Mit dem aktuellen GCC-Release (9.1) hast du jedoch kein Chance.
-
Thread
Problem mit globaler Variable und dem CTC-modus
Toni schrieb im Beitrag #1829108: > Und zwar speichert GCC diese auf dem flash. Die Variable wird vom Startupcode im RAM angelegt. Stichwort .DATA Variablenbereich. Im Flash ist lediglich der erste Wert (0) mit dem die Variable initialisiert wird. Was
Toni schrieb im Beitrag #1829108: > Und zwar speichert GCC diese auf dem flash. Das glaube ich eher nicht. Die liegt im RAM. > nun dauert ein einziger zugriff auf die variable geschlagene 10 zyklen. Hast du evtl. vergessen, die Optimierung einzuschalten
-
Thread
Frage zu UART AVR Code
Läuft problemlos, auch mit Optimierung -Os, siehe Anhang.
Kann es sei, dass du einen neueren Compiler als WinAvr2010 (avr-gcc 4.3.3) verwendest? Ich frage, weil der Simulator/Debugger mit neueren Versionen öfter Probleme hatte, bis hin zum Absturz.
-
Thread
Int to float riesiger Speicherbereich
dadurch der Umfang des erzeugten Codes > nennenswert ändert? Der ist identisch (wenn man mit Optimierung compiliert). Wozu also fünf Zeilen schreiben, wenn es in einer viel übersichtlicher ist?
Zumindest früher wars doch so, dass avr-gcc die falschen recht monströsen Libfunktionen für Fliesskommarechnung verwendete, wenn man vergass, dem Linker den richtigen Tipp zu geben. Meist merkten es die Leute, weil das RAM platzte.
-
Thread
DS1820
Optimierung ist aber eingeschaltet, oder?
... Das weiß ich nicht... Wo kann man denn diese Optimierung einstellen... bzw. wie muss ich sie konfigurieren?
-
Thread
Unterfunktionen in Section verbannen
Section gelegt. Das willst du doch? Es schafft bestenfalls die Voraussetzung für eine solche Optimierung, die dann in den binutils geschehen kann.
ffunction-sections -fdata-sections CFLAGS += -Wl,--gc-sections CFLAGS += -Wl,--relax[/pre] avr gcc-Version 4.3.5 (GCC)
-
Thread
Array Anfängerfrage
klingt plausibel und lesbarer ist es in Variante 1 allemal. Da >gebe ich euch recht. Eben. Um Optimierungen macht man sich eher später Gedanken, als Anfänger schon gar nicht. https://www.mikrocontroller.net/articles/AVR-GCC-Codeoptimierung#Prinzipien_der_Optimierung
-
Thread
Bibliothek: MAX 7219 / 7221 an AVR (GCC)
Hallo, ich habe eine kleine Bibliothek geschrieben um einen MAX 7219 mit einem AVR Mikrocontroller anzusteuren. Wer Interesse daran hat kann sie sich runterladen und sie ohne Einschränkungen benutzen. Getestet wurde sie mit einem 7219er jedoch sollte sie auch mit einem 7221er funktionieren. Die meisten Funktionen dienen dazu eine Zahl auf einer bis zu 8-Stelligen 7-Segment Anzeige, die gemäß des Datenblatts angeschlossen wurde, darzustellen. Die Funktion "max7219_send" kann jedoch mit beliebigen Parametern aufgerufen werden und dazu benutzt werden die angeschlossenen LEDs völlig individuell