-
Thread
frage zu defines TRUE/FALSE
Beitrag #6717113: > Moderne C Compiler / CPUs nutzen für > bool 1 Byte und nicht 4 Byte. Was auf 32-Bit-µCs wie STM32 zu einer Geschwindigkeitseinbuße führt.
Code der auf 16-bit embedded und > PC läuft. Den Zusammenhang verstehe ich jetzt nicht. Einen uint32_t kann man per [c] printf("Der Wert ist %" PRIu32, wert); [/c] ausgeben. Kleine Randontiz: Oft sieht man das ohne das Leerzeichen zwischen dem Anführungszeichen und dem PRIu32. Das bricht aber
-
Thread
Verständnisprobleme bei der integer Zahlenübergabe an Port
leuchten, usw. usw. Hier mein Code: [c] #ifndef F_CPU #define F_CPU 16000000UL #endif #include <avr/io.h> #include <util/delay.h> #include <math.h> int main(void) { DDRD = 0xFF; int tmpLED = 0; int led = 0; int portCount = 0; while (1) { if(led>0 && led<7 &
falsch. Eigentlich müssten doch die Werte, die ich auf diese Weise an Port D übergebe 1, 2, 4, 8, 16, 32, 64, 128, 64, 32, etc. sein (so jedenfalls wenn ich den Code einfach nur in einer IDE für C Programme ausgeben lasse). Was mein Lauflicht allerdings daraus zu machen scheint ist folgendes (ich gebe hier
-
Thread
Ethernet für uC?
so explodiert der Aufwand plötzlich. Ein Raspberry Pi kann das alles ab Werk. Ein ESP8266 oder ESP32 kann immerhin die Basics. Aber ein ATmega328 ... eeeeh. Wenn das alles so einfach wäre, hätten wir schon in den 80er Jahren unserer Heimcomputer (C64, Amiga, Atari) mit Netzwerkkarten ausgestattet
Links zum Thema https://www.mikrocontroller.net/articles/Einfacher_und_billiger_Webserver_mit_AtMega32 http://www.lochraster.org/etherrape/ Ergänzung: myEthernet 64k https://shop.myavr.de/index.php?sp=article.sp.php&artID=100065
-
Thread
Font für gelb/blaue OLED SSD1306 gesucht
Kannst ja mal fotografieren, vergrößern und auszählen. Die Gesamthöhe ist 32 oder 64?
Christian J. schrieb im Beitrag #6708706: Da ich einen 32 Bitter nutze sind die bestehenden als 16 Bit > Werte hinterlegt das verstehe ich nicht, was hat die Wortbreite des Prozessors mit den Fonts zu tun? Ob ein Font als Bit-, Byte oder 16/32 Bit breites
-
Thread
Suche Microcontroller mit EBI
1 SPI 1 UART [/code] Aktuell benötigt der AVR Code ca. 38kbyte Flash Die ATXMEGA kann man leider nicht bei 5Volt betreiben und die AVR128 haben leider kein EBI. Im Moment benutzte ich einen Atmega1284P und machen das EBI zu Fuss, aber das
ATmega64
-
Thread
warum werden bei uart immer char gesendet/empfangen?
wchar** welches 16bit groß ist. https://docs.microsoft.com/en-us/cpp/cpp/char-wchar-t-char16-t-char32-t?view=msvc-160
Beitrag #6702032: > Das reicht nicht für den Anspruch alle Schriften der Welt darzustellen, > auch 32 bit reicht nicht, derzeit benutzt Unicode 48 bit. Ähm, nein.
-
Thread
77,5kHz Generator aus 20MHz Takt ATtiny45-20 Assembler 10MHz Frequenznormal
Ich denke, Bernhard bleibt einfach gerne in seinem AVR-Universum.
Abdul K. schrieb im Beitrag #6717821: > Ich denke, Bernhard bleibt einfach gerne in seinem AVR-Universum. Nichtmal das. *SEIN* AVR-Universum ist nämlich auch noch sehr viel kleiner als das tatsächliche AVR-Universum... Nur will er das nicht wirklich wahrhaben und schon garnicht öffentlich
-
Thread
Warum geht das nicht ?
Guten Abend, ich habe ein Projekt aus einem Buch mit einem Atmega32a. Es scheint auch soweit zu funktionieren, aber kann die Ausgabe am display nicht sehen. ich bin der Meinung das ich alles richtig angeschlossen habe. Und den Kontrast habe ich auch schon verstellt
); lcd_send(COMMAND, LCD_ON); } [/c] main.c [c]// velocity measurement - target ATmega32 #define XTAL 8e6 #define F_CPU XTAL #define DIST 0.06 // sensor distance in m #include <avr/io.h> #include <avr/interrupt.h> #include <stdlib.h> #include <util/delay.h>
-
Thread
Pendel mit DCF77 synchronisieren Gesperrt
mit 10 MHz skizziert, viel besser ist das schon vor Jahren in der Artikelsammlung im µC-Net "AVR - Die genaue Sekunde / RTC" zu finden. Aber - oweh, AVR ist ja sein Reizwort! Also viel Spaß bei der Neuerfindung des Rads mit dem M3 Schlaft gut!
mit 10 MHz skizziert, > viel besser ist das schon vor Jahren in der Artikelsammlung im µC-Net > "AVR - Die genaue Sekunde / RTC" zu finden. > > Aber - oweh, AVR ist ja sein Reizwort! Nein kein Reizwort, nur für mich ein NoGo. Punkt. Ich zwinge niemanden diese Meinung auf, jeder kann machen was
-
Thread
Arduino Betriebssystem
Anwenderprogramm ist mit 1 kByte RAM arg > limitiert. Ich würde heutzutage das Limit eher bei 16 oder sogar 32kByte > RAM sehen. Früher (tm), auf einem 6502, lief Basic auf 8kB ROM und 4kB RAM. Arduino gibt es mit 96kB RAM (64k+32k) und 512kB Flash. Merkst du was?
Arduino kennst, die keine blockierenden I/O Zugriffe machen. Die will ich sehen, zeige mir mal 20 für AVR oder 20 für STM32F3 (oder irgendeine andere single-core Architektur deiner Wahl), dann bin ich schon zufrieden.
-
Thread
WIN10/64 und COM1
Ports beim Experimentieren zu zerschiessen. Sogar Legacy LPT funktioniert in einer VM unter WXP/7X32 für SW mit Security Dongle. Das geht in W10X64 Treibermässig leider nicht mehr weil die Dongle Treiber nicht mehr für X64 erneuert wurden. Mit Teraterm kann ich mit W10X64 (20H2) alle vier COM Ports einwandfrei verwenden. Wie gesagt, unter W10X64 sind es die alten SW Treiber die nicht mehr funktionieren.
-
Thread
ASM-Anleitung
Problem: wenn ich mit C zusammen Assembler als *.S File benutzen möchte, geht dort vieles nicht, was in AVR-Assembler von AVR Studio geht. Und ich finde nirgendwo eine Anleitung genau für diesen Fall. Mit Assembler in AVR Studio kein Problem: dort gibt es Help. Wenn ich aber Assembler-Anleitung für GCC suche
Thomas Z. schrieb im Beitrag #6687764: > was soll den deiner meinung nach passieren bei einem 8Bit AVR Mit Assembler aus AVR Studio funktioniert das wunderschön: [code] #ifndef temp #define temp r24 #endif #ifndef BYTE_H #define BYTE_H #define byte5(x) (x>>32)&0xff #define byte6
-
Thread
STM32F103 Timer Interrupt Trigger bei bestimmten Wert
16 Bit der Prescaler Einstellung limitiert bin und nicht weit genug runter takten kann mit meinen 64Mhz des STM Boards. Eventuell kann mir hier jemand einen Denkanstoß geben, der etwas tiefer in der STM Materie steckt als ich (Habe bisher nur mit AVR Controllern gearbeitet)
Schau dir *compare* bei den timern an: FSTM32L4_WDG_TIMERS_GPTIM.pdf
-
Thread
Multiplikation_in_Assembler
Eben, es geht hier um 'muls24x8_32'. - ?
dafür geeignet. Auch Code ist bei Softmult oft (nicht immer) sparsamer. Z.B. multsoft_24x24_48 hat 64 bytes, multhard_24x24_48 dagegen 84 bytes; multsoft_24x40_64 hat 76 bytes, multhard_32x32_64 dagegen 162 bytes, wenn auch viel schneller. Als Null-Register paßt bei Hardware-Mult hervorragend @0, da
-
Artikel
LAUNCHXL-F28379D
komfortablen Frequenzumrichter für einen Drehstrommotor genügt bereits ein ATtiny861. Dieser hat eine 64-MHz-High-Speed-PWM und 3 PWM-Ausgänge mit programmierbarem Totzeitgenerator. Ein TMS320F28379D bietet ähnliches vielfach, dazu Hardware zur Auswertung von Vielstrich-Inkrementalgebern. Herausgeführt
Eigenheiten: Obwohl im Leistungsbereich eines ARM Cortex M4 ist die bevorzugte Verarbeitungsbreite 16 Bit. 32-Bit-Befehle laufen ohne Zeitverzug, sind aber nicht Standard: Merke: sizeof(int) *2 == sizeof(long). Bytes können nicht adressiert werden: Merke: sizeof(char) == sizeof(wchar_t) == sizeof(int) == 1 (
-
Thread
Python oder besser bei C bleiben?
optimiert kriegt. Braucht halt etwas mehr Speicher als 'bare metal', aber microPython geht schon mit 64 kB (32kB RAM, 32kB ROM). Wuerde aber erst mal klassisch unter Linux anfangen. Jupyter Notebooks sind noch was Schoenes, um Ergebnisse dokumentierbar/demonstrierbar zu halten.
Der, der alles besser weiß schrieb im Beitrag #6684452: > Wie oft werden heutzutage 32-Bit Bolliden für Aufgaben eingesetzt die > ein professionell programmierter 8-Bitter genauso gut erfüllen könnte? Wieso schreibst du deine Texte von ’nem 64-Bit-Boliden (mit einem l), bei dem das
-
Thread
zwei Attiny's 85 über I2C
://ww1.microchip.com/downloads/en/AppNotes/Atmel-2561-Using-the-USI-Module-as-a-I2C-Master_AP-Note_AVR310.pdf http://ww1.microchip.com/downloads/en/AppNotes/Atmel-2560-Using-the-USI-Module-as-a-I2C-Slave_ApplicationNote_AVR312.pdf
Nachtrag: https://funduino.de/nr-42-oled-display-ssd1306-128x64-128x32 So steuert man das Display an was du dir im Shop ausgesucht hast. ;) Und die Addfruit-Libs ist viel größer als die LiquidCrystal_I2C.h
-
Thread
Anfängerfrage: 40 Stück Atmega328 an einem Quarz?
Uwe D. schrieb im Beitrag #6680390: > Die betreibe ich jenseits der 32MHz mit externem Oszillator. Über > Monate. Und was hast Du davon? Nimm doch einen 100MHz C8051, der rennt Deinem 32MHz AVR aber sowas von davon. https://www.silabs.com/mcu/8-bit/c8051f12x-f13x
Allerdings hab ich wohl noch einen Bug drinn. Denn mit der Erhöhung des Buffers auf 144 werden trotzdem nur 32 übertragen. -> hmmm... !? Zeile 29: #define BUFFER_LENGTH 32 https://github.com/arduino/ArduinoCore-avr/blob/master/libraries/Wire/src/Wire.h @derguteweka: Den SMBUS hatte ich im Blick, weil
-
Thread
avr asm LCD Problem
Ich bleibe noch bei AVR Studio 4.19 und AVR Assembler 2. Spätere sind zu langsam und ab 6. arbeiten mit WinXP nicht mehr. Wenn es einmal weiter gehen soll, dann lasse ich AVR und steige auf etwas mit 32 bit ein.
Forumsmaßstäben) mit Samthandschuhen > angefasst. Vermutlich weil die meisten (inklusive mir) von AVR Assembler wenig bis keine Ahnung haben.
-
Thread
I2C Bus ermitteln und darstellen
Arbeite mit AVR Studio in C
auf die Displaygröße an und größere Displays mit mehr Pixel brauchen auch mehr Platz, da kann es im AVR eng werden auch vom Tempo unter I2C.
-
Thread
[V] Wohnungsauflösung München Ramersdorf: Messgeräte, Funktionsgeneratoren, Oszi, Bauteile, PC uvm
4€; opvs, Komperatoren, Sensoren: 15€; dram, sram: 5€ 62 quarze: 10€ 63 dioden diacs triacs: 5€ 64 Z80 ctm 68B03, sockel, siemens 80c32, Z8400A, 80c535N-16: 10€ 65 logic ics: 5€ 66 gehäuse: 15€ 67 atmel xplained pro: sam d20, proto1, I/01, USBio, USB TTL: 40€ 68 AM27C256: 1€ 69 PEAK LCR45: 25
5xAT89C2051, 4xATMEGA6L, 3xAT89C52, 10x ATTINY11, ATINY15L, 2xATMEGA48, 5xATMEGA68V, 5x ATMEGA88, ATMEGA32: 10€? 54 audio bausatz e406: 3€ 57 hdmi kabel: 5€ 58 smd ics Überraschungspaket: 5€ 62 quarze: 10€ 64 Z80 ctm 68B03, sockel, siemens 80c32, Z8400A, 80c535N-16: 10€ 67 atmel xplained pro: sam d20
-
Thread
Attiny und Big Sur
Beitrag #6669172: > MPLAB X IDE only supports computers with processors designed with the > Intel® 64 architecture. Ja, ich weiß; das heißt aber eher, dass man das Zeugs nicht mehr auf 32 Bit System benutzen kann. Frag doch einfach mal Microchip. Die Wahrscheinlichkeit, dass Rosetta2 das einfach so
Rosetta da Homebrew Intelcode ist. Man muss den Befehlen zur Installation im Terminal arch -x86_64 voran stellen. Zumindest war es vor rund einem halben Jahr noch so als ich es installierte. Zur Verwendung an sich ist dann dieser Zusatz aber nicht nötig, avrdude und avr-gcc werden automatisch als
-
Thread
ATTiny85 inkrementiert Variable nach Neustart nicht mehr
gut das ist ja klar der Timer1 läuft ja jetzt viel schneller als die eigentlich CPU hier 16 MHz. Bei 64 MHz PLL Takt und einem Prescaler von 2 läuft der Timer1 ja auf 32 MHz also doppelt so schnell wie die eigentliche CPU. Jetzt mache ich ja nur PWM mit dem Timer. Wenn ich doch in meiner main Schleife
Takt von 8 MHz(intern) und den Timer1 im Synchron Modus. PWM Frequenz lag glaubig bei 62,5KHz oder 32 KHz. Konnte aber mit 150KHz eine deutlich besseren Wirkungsgrad erzielen. Könnte das evtl. auch was mit den 16MHz Takt (PLL) zutun haben dem der Prozessor jetzt läuft? Mfg
-
Thread
STM32F401/411: Black Pill Board: Wie auf alten IDE zum Laufen kriegen?
? Die CubeIDE von ST z.B. ist vollkommen kostenlos. https://www.st.com/en/development-tools/stm32cubeide.html
von Coocox 1.7.8 noch unterstützt. Weiß nicht, ob Dir das etwas bringt. Nachdem ich aber meine AVR-IDE umgestellt habe und trotz Fluchen und Schimpfen nicht daran gestorben bin, wede ich hier mitschmökern und irgendwann nochmal den Mut fassen, auch für den STM32 was Neues zu probieren.
-
Thread
Gebrauchter Apple-Laptop mit gutem Preisleistungsverhältnis?
/oft genutzte Tools: Speedcrunch, Vorschau.app, Firefox, Eclipse 2021-03 (4.19.0), Kommandozeile, avr-gcc, sdcc, arm-gcc, git, make, homebrew, Eagle, goSerial, LibreOffice, GIMP, Arduino-IDE (+Plugin für eclipse), Audacity, VLC-Player, Oracle VirtualBox (Windows XP/7/10, aaalte Spiele, Steuer machen
auf einem Pentium 3 booten. Pentium 4 hatte ich nicht und wollte ich nicht, aber auf einem Athlon 64 Venice lief dann als Hackintosh 10.4 im Jahre 2006 ziemlich gut. Und jetzt habe ich hier einen alten Mini (2011) und weiß auch nicht so recht ob ich noch einen letzten Intel Mac kaufen oder auf stärkere
-
Thread
LED ansteuern?
angeschlossen. Leider fehlt mir noch etwas die Syntax, die ich schreiben muss. #define F_CPU 32000UL; //32kHz #include <avr/io.h> #define LEDPORT PORTR; #define LEDPIN PR1; int main(void) { while (1) { LEDPORT |= (1<<LEDPIN); } } Vielen Dank für jede Hilfe. Habe noch
Ich kenne jetzt nicht den Controller aber sollte das nicht hier definiert werden? Statt #include <avr/io.h> also #include <avr/iox256a3bu.h> Weiterhin bin ich mir nicht sicher, ob das alleine genügt: #define F_CPU 32000UL; //32kHz Woher soll der Controller wissen, der Clock intern oder extern
-
Artikel
ARM Cortex Mikrocontroller
Beispielen und ohne Codesize-Limitierung, dafür mit anderen Einschränkungen Cosmic Software (Windows), bis 64kB kostenlos Crossworks ARM (inkl. Toolchains basierend auf GCC und Clang, für Windows, Mac OS und Linux) IAR Embedded Workbench for ARM (Windows) MDK-ARM von Keil/ARM (Windows), Lite-Version bis 32kB
Installationsanleitung_C-Entwicklungsumgebung_f%C3%BCr_LPC1xxx_von_Code_Red Codebase_f%C3%BCr_LPC1xxx ARM-elf-GCC-Tutorial AVR32 Blackfin AT91SAM9260 STM32 JTAG EFM32 STM32 - Einstieg mit Em::Blocks Tutorial Weblinks. Online Tutorial für den STM32 Online Tutorial für den XMC von Infineon Online Tutorial für freie Grafikbibliothek
-
Thread
Atmega88 Code kompiliert ohne Fehler und läuft nicht
; 66 62: 80 83 st Z, r24 #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); 64: 2f ef ldi r18, 0xFF ; 255 66: 33 ed ldi r19, 0xD3 ; 211 68: 90 e3 ldi r25, 0x30
; 66 62: 80 83 st Z, r24 #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); 64: 2f ef ldi r18, 0xFF ; 255 66: 33 ed ldi r19, 0xD3 ; 211 68: 90 e3 ldi r25, 0x30
-
Thread
Selbstabschaltung ohne Mikrocontroller
Maximal sind 65535 möglich, das sind ca. 18h. Für längere Zeiten müßte man den Zähler auf 24 oder 64 Bit vergrößern.
Timer mit dem CD4521. Die Jumper gestatten 30 Sek., 1 Minute, 2 Minuten, 4 Minuten, 8 Minuten, 16 und 32 Minuten. (bei Interesse gibt es auch den Schaltplan)
-
Thread
gcc komischer fehler: sbrk() Gesperrt
ich immer noch.... wenn ich mal wenige Byte brauche mal eben 2K zu reservieren macht auf vielen AVR keinen Sinn, immer die ganzen Blockpointer belegt/frei mitzuschleppen artet ja in Arbeit aus! Ein Glück das die SRAM auch auf µC immer größer werden (ESP32 vs. PET2001), da verschiebt sich das Problem
std::string.) In C++ gibt es die "Smart Pointer", welche das im Ansatz, können. Leider nicht für AVR, allerdings für ARM, ESP und die anderen 32 und 64Bit µC, schon. Die smarten Pointer haben einen Referenzzähler im Bauch, und wenn der auf Null geht, wird der Speicher freigegeben. Zumindest das
-
Thread
uC Programmiertechniken - Gibt es da Bücher?
mehr überraschende Seiteneffekte mit sich. Nur so als Beispiel: Wenn ich bei einem 8 Bit AVR die I²C Schnittstelle einschalte, dann muss ich mir un die Konfiguration der I/O Pins keinen Kopf machen, denn I²C ist I²C. Bei STM32 muss ich hingegen den Port aktivieren, die I/O Pins konfigurieren
Beitrag #6662428: > Ist das hier überhaupt richtig? Da bin ich überfragt, so firm bin ich bei STM32 nicht.
-
Thread
Division 64Bit durch 32Bit gesucht
Geschätztes Forum, ein 64Bit Zahl, soll durch eine 32Bit Zahl In Assembler z.B. ATmega8 dividiert werden. Siehe 32Bit Division: https://www.mikrocontroller.net/articles/AVR_Arithmetik#32_Bit_.2F_32_Bit Kann jemand helfen
im Beitrag #6661532: > Ein ATmega328P (und natürlich ein ATmega1284P u.v.a. ebenso) schafft > DIV64/32 mit 64 Bit Ergebnis und 32 Bit Rest (besser und genauer geht es > nicht) mit dem von mir oben aufgelisteten, sehr geradlinigen > AVR-Assembler-Unterprogramm (nur 60 Bytes Programmspeicher) in ca
-
Thread
Eine Kinderfrage bzg. Struct
andere Warnings nicht merken, die noch wichtiger sind). Wie kann ich das korrekt machen? Ich habe avr-gcc-5.4.0 benutzt und ATMega644PA. Vielen Dank im voraus!
schreibe ohne daß Compiler schimpft. Was möchte ich genau: ich habe z.B. eine Variable, 16bit oder 32 oder 64 bit. Ich möchte für ein Bit dieser Variablen Name geben und darüber dieses Bit setzen, löschen oder prüfen. Ich möchte das wie ober gezeigt machen, MYBITVAR0 = 1; MYBITVAR0 = 0; if(MYBITVAR0)
-
Thread
STM32 Chips zur Zeit so gut wie nicht beschaffbar
mcu-32-bit-64mhz-lqfp-64/dp/3652236 Ich hatte mir ein Evalboard mit einem STM32F411RE gekauft, aber da ist die Lieferzeit noch länger (und die M0+ wären mir sogar lieber).
9200 128kb STM32F103 sind noch verfügbar und ich brauche die, weil ich meine 64kb grad gesprengt habe :-( Aber die sind wohl aus Gold :-(((
-
Thread
Quadratur Decooder/Zähler als eigenständiges IC - heutzutage (2021) erhältlich?
Art "Zeiger" mit einer 3mm-Scheibe vorndran bewegt sich knapp über der lichtempfindlichen Fläche von 64x64mm einer Kamera an einem Elektronenmikroskop. Die Scheibe fängt den Nullstrahl bei Beugungsaufnahmen. Sie soll aus dem Bild gefahren werden können, aber auch wiederholgenau in die Bildmitte zurückgefahren
Ich rate entweder uC mit Quadratur Peripherie (STM32, DSPIC, etz.) zu verwenden oder die LS7166 Zähler o.ä. Den STM32 Quadraturmodus verwendeten wir früher einmal in der Firma und das funktionierte wie gewünscht. Die LS7x66 funktionierten in früheren Projekten
-
Thread
GLCD Controller ST7920
Meinen ersten Beitrag habe ich schon mit AVR ASM überschrieben, aber aus Erfahrung weiß ich, daß darauf kaum jemand reagiert. Meine Fragen sind aber eigentlich unabhängig von der Programmiersprache, sondern betreffen die Interpretation des
rcall lcd_writecom ;H-Adresse auf 0 rcall delay50us inc temp1 cpi temp1, 32 breq exit1 rjmp _Fill_GDRAM [/avrasm] Hinweis: den delay 100ms habe ich eingefügt, damit ich den Ablauf beobachten kann.
-
Thread
STM32F103 Bluepill mit 128kb lässt sich nicht flashen
Wert sogar für einen Cortex M4 stehen. Fest steht jedenfalls erstmal nur, dass es kein original STM32 ist. Ein CKS32 kann es meiner Meinung nach aber auch nicht sein, weil der tatsächlich nur 64kB Flash hat.
Thanks, Gerard P.s. Also the windows shell context menu application works nicely in both win7 (32/64) and windows 10.
-
Thread
Fotos von zwischendurch :-) (Laberthread)
schon geklappt. Ich benutze einen Tiny861, weil der für den Buckconverter mit seiner eingenauten 64Mhz Pll genug Hz schaft und für die differentiellen ADC-Eingänge 4 wählbare Gainstufen hat.
weiss umgelötet was ich immer noch toll finde das die Display ohne einen Draht 1:1 am nano oder esp32 laufen! Kontrast & backlight ist über USB einstellbar und BL kann per PWM gedimmt werden
-
Thread
ADC logarithmieren mit Assembler und Tiny10
E |R evtl. kann man a,b näherungsweise als z/n; z E |Z und n E |N darstellen. Das könnte man in AVR8 Assembler einfacher Implementieren.
; DIV 16 add rDelayL, YL adc rDelayH, YH lsr YH ror YL ; DIV 32 lsr YH ror YL ; DIV 64 add rDelayL, YL adc rDelayH, YH ; eff * 1.078125 dec rADCvalue brne expLoop ror rDelayL lsr rDelayH ror rDelayL lsr rDelayH
-
Thread
C Programmierung ohne Pointer?
Freigabeproblematik. Damit C Programme sicherer werden, gibt es Programmierstile (z.B. wie WIN32 API: Buffer nur mit Längenangabe übergeben) und Checkprogramme (lint, Fortify). So lässt sich nicht nur funktionierende Software schrieben, sondern auch viele Fehler von vorrneherein vermeiden.
Hast du zufällig mal NRVO also mit nem RVO mit nem lvalue getestet? [c] struct Data { int b[64]; }; struct Data make_Data(int a) { struct Data tmp; for(int i=0; i<64; ++i) { tmp.b[i] = a + i; } return tmp; } [/c]
-
Thread
Speicherverhalten Moderner Controller/CPUs
Beitrag #6640187: > Auf Mikrocontroller passt das Thema nicht, da diese immer RAM haben. Beim ersten AVR kam man ein einfachen Fällen allerdings ganz gut ohne RAM aus. Mit 32 Registern und einem Hardware-Stack ist RAM nicht zwingend nötig. Und der erste PIC, der 1650, hatte überhaupt kein RAM, nur 32
für die offiziellen Datenblätter der Hersteller. Beispielsweise steht im Datenblatt des ATtiny13: "64 Bytes Internal SRAM", obwohl es inklusive der 32 ALU-Register und der 64 I/O-Register ja eigentlich 160 Bytes sind: "The first 32 locations address the Register File, the next 64 locations the standard