-
Thread
Wie baut man in C Strings zusammen?
long T; T func (T a, T b, T c) { if (c & 1) a |= b; return a; }[/c] [pre]$ avr-gcc-14 foo.c -S -Os -mmcu=atmega8[/pre] [avrasm] func: push r8 push r9 push r10 push r11 push r14 push r15 push r16 push r17 /* prologue end */ movw r8,r22 movw r10
r19 and r30, r20 and r31, r21 or r24, r30 or r25, r31 ret [/avrasm] Wie jeder AVR Programmierer weiß, geht das alles in 6 Instruktionen. Mit avr-gcc v8 und v15 besser, aber auch da reibt man sich die Augen: [avrasm] func: push r14 push r15 push r16 push r17 /* prologue
-
Thread
Auf element außerhalb array zugreifen
rum, im Arduino unter #if defined(__AVR__) klappt char *var_ptr = NULL; var_ptr = malloc(10); [c] void setup() { #if defined (ESP32) #pragma message "ESP32" #elif defined (__AVR__) #pragma message "AVR" #endif char *var_ptr
da noch ein Cast > hin: die Realität: nee genau anders rum, im Arduino unter #if defined(__AVR__) klappt char *var_ptr = NULL; var_ptr = malloc(10); [c] void setup() { #if defined (ESP32) #pragma message "ESP32" #elif defined (__AVR__) #pragma message "AVR" #endif char *var_ptr
-
Thread
Lerncomputer so wie KOSMOS CP1 nachbauen
mit ExtBusIF) Genau einfach einen 324PA für 3 Euronen hat sogar Reichelt. Und wie eigentlich alle AVR im PDIP-40 hat der 4 komplette Ports, also 32 IO-Pins. Ungeachtet dessen, halte ich die Idee für nicht sonderlich ergiebig. Aus eigener Erfahrung kann ich sagen die Kinder (ok, die mir bekannten
reicht nicht. Beim DIP40 würden 13 Bit für die I/Os bleiben. Gar nicht mal so schlecht. Oder auf die 14-Segment-Displays verzichten. Oder Port-Expander nehmen. Müssten halt auch im DIP-Gehäuse sein. DIP40 hat 32 I/Os. DIP28 hat 23 I/Os. Beim DIP40 hätte man drei 8-Bit I/O-Ports, und 8 Leitungen
-
Thread
Brötje ISR Plus Kommunikation / LPB
7F D7 00 14:15:26 74 0A AD FF CA FE D2 E3 7F D9 00 14:15:29 74 0A AD FF C6 FE D2 E3 7F DB 00 14:15:32 74 0A AD FF BE FE D2 E3 7F DF 00 14:15:35 74 0A AD FF BA FF D2 E3
ff ff ff 16 f1 89 78 0e 00 08 c0 02 00 14 e6 05 05 00 0b f5 6b 78 17 08 00 0c 02 00 14 e7 05 05 00 0b 00 74 03 16 02 0d 03 32 00 ec 9b 78 0e 00 08 c0 02 00 14 06 05 05 04 b3 f5 37 78 17 08 00 0c 02 00 14 07 05 05 04 b3 00 ff 03 19 ff
-
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? Danke Bernhard
Mit 32 und 16 bit steht es hier weiter unten: http://avr-projekte.de/rechnen.htm
-
Thread
I2C (TWI) Sniffer mit AVR
Pegelwandler. Kann mir jemand die beiden ASM Versionen (mit und ohne Timestamp) für 460800 Baud bei 14.7456 MHz als non inverted (für externen MAX232) fertig kompiliren? Ich progge sonst mit Bascom und habe mich mit dem AVR Studio nicht so richtig befasst. Danke vorab. RePi!
Ich glaube nur mit Tiny's oder andere AVR's mit "TWI USI" interfaces. Die M32 hast einer echte TWI "HW engine" , diser kan fehler detekteren. Aber kein "sniff" mache , wann die data sind fehl/ungültig. Hoffe du verstehe miner "schule
-
Thread
AVR und der Umgang mit C++
tatsächliche Assembler code nach der Optimierung ? [code] Builds/main.elf: file format elf32-avr Sections: Idx Name Size VMA LMA File off Algn 0 .data 00000000 00800100 00000388 000003fc 2**0 CONTENTS, ALLOC, LOAD, DATA 1 .text
a0: 1b b8 out 0x0b, r1 ; 11 #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); a2: 82 e0 ldi r24, 0x02 ; 2 a4: 8a 95 dec r24 a6: f1 f7 brne .-4 ; 0xa4 <_
-
Thread
Mini-Farbdisplay (+mehr) für 1 Euro
ganz witzig wäre : Flash auslöten, Leiterbahnen um die CPU mit Cutter-Messer durchtrennen, ATMega32 auf kleiner SMD-Platine reinkleben und mit Display, Tastern und USB-Kabel verbinden. USB-Bootloader drauf : http://www.obdev.at/products/vusb/prjprog.html Fertig, AVR-Handheld Konsole ;)
Jakob schrieb: > Flash auslöten, Leiterbahnen um die CPU mit Cutter-Messer > durchtrennen, ATMega32 auf kleiner SMD-Platine reinkleben > und mit Display, Tastern und USB-Kabel verbinden. [...] Die Idee, da einen AVR hineinzubasteln hatte ich auch schon. Aber wenn man sowieso eine SMD-Platine
-
Thread
ARM-Cortex als Anfänger?
Es gibt den STM32 Arduino, damit kann man doch einsteigen. Es muss kein AVR Arduino sein.
Vergleich die neuesten EFM8 an - Leistung, Peripherie, Preis Mampf F. schrieb im Beitrag #4957872: > AVR32, ATSAM3 und AT91SAM7 unter Legacy-Products Hab AVR32 mit xmega verwechselt. Gab parallel eine andere Diskussion was aus Arduino Due wird falls ATSAM3 tatsächlich abgekündigt wird. Hiess ja immer
-
Thread
Arduino Uno R4: Besonderheiten und Abhilfen
defined(__AVR_ATmega328P__) Serial.println(F(", auf ATmega328p")); #elif defined(ESP32) Serial.println(F(", auf ESP32 WEMOS LOLIN32")); #endif [/c]
keine 8/16bit ARMs). Die meisten "T32"-Instruktionen (vom Cortex-M4) sind 16bit breit, d.h. genau so breit wie die vom AVR. Die Handvoll 32bit-Instruktionen brauchen i.A. auch nur einen Takt zum Berechnen; das Laden aus dem Flash *kann*
-
Thread
Padauk MCU für 0.038 USD aus Taiwan
ich oder jemand anderes ihn auch in meinen kleinen PIC-Brenner einbauen. Der basiert auf einem STM32F103-Board, das ich hier schon mal gepostet hatte. Einstellbare Programmierspannungen bis ca. 14 Volt sind drin. So stellt sich mir der Stand der Dinge zur Zeit dar. W.S.
er nicht auf Lager ist) war das letzte mal bereits bei 14€. Gibt es irgendwelche Alternativen? Ich kenne mich mit den STM32 nicht sonderlich aus, da 8bit für mich bisher vollkommen ausreichend waren.
-
Thread
Fehlerhafte Adressierung von lokalen Arrays bei tinyAVR(R) 0-series
Mir haben Sie nichts gezeigt, würde es ohnehin nicht verstehen, das war wohl jemand anders. > Ein AVR mit mehr als 32 KiB Flash ... Der ATmega4809 hat 48 KiB.
Jörg W. schrieb im Beitrag #7379165: > Ein AVR mit mehr als 32 KiB Flash kann zwangsweise das Mapping des > Flashs in den linearen Adressraum, wie es bei den kleinen AVR0 gemacht > wird, nicht mehr haben. Daher bleibt für den ausschließlich
-
Thread
Atmel noch zukunftsfähig? Gesperrt
einem übel hohen Preis. Wann strafft eine pöse Heuschrecke das Portfolio von Microchip mit MCS51, AVR, XMEGA, SAM, PIC12, PIC14, PIC16, PIC18, PIC24, PIC32? Bei der nächsten Finanzkrise, in die wir gerade reinrauschen?
Beitrag #5663039: > Wann strafft eine pöse Heuschrecke das Portfolio von Microchip mit > MCS51, AVR, XMEGA, SAM, PIC12, PIC14, PIC16, PIC18, PIC24, PIC32? > Bei der nächsten Finanzkrise, in die wir gerade reinrauschen? Da auch Microchip ein Unternehmen ist, das nicht nur aus purer Liebe und Güte
-
Thread
Mikrocontroller - die Qual der Wahl, oder doch die Wahl der Qual?
STM32F0 mit 8MHz ist immer > noch um ein vielfaches schneller als ein AVR mit 16MHz. Das bezweifle ich allerdings. Er mag schneller rechnen können, aber das wär's dann auch schon.
hat. Das stimmt so auch nicht, denn es gibt durchaus kleinere µC Chips mit ARM Kern. Beispiel: STM32F0xx Der hat zwar einen 32 Bit Cortex-M0, ist dennoch mit relativ wenigen Pins ein kleiner Typ. Ich würde den eher als Ersatztyp für den AVR ansehen. Die großen wie z.B. STM32F4xx sind in der Tat
-
Thread
Hackbarer(?) 21 EUR Quadcopter
0x32, 0x2C, 0x14, 0x27, 0x36, 0x34, 0x1C, 0x17 }, // 02 { 0x22, 0x27, 0x17, 0x39, 0x34, 0x28, 0x2B, 0x1D, 0x18, 0x2A, 0x21, 0x38, 0x10, 0x26, 0x20, 0x1F } // 03 }; [/c] sowie beim init [c
SWD(%d) %s %s = %#x\n",addr, header&0x40?"AP":"DAP",header&0x20?"Read":"Write", dat); return 14+32; } Chris
-
Thread
Wieso vor allem AVR µCs bei Bastlern?
war mal ein Punkt aber ob Arduino oder PICKit ist egal. Ob auf den Kits nun AVR 8bit, AVR 32bit, PIC 8bit, PIC 32bit, STM32 oder MIPS drauf ist hat mit der Entwicklung nicht viel zu tun, außer man braucht spezielle Dinge die nur XYZ kann :-P AVR 8bit und PIC 8bit dürften 50:50
/ AVR / 8051 groß: MIPS (PIC32) / ARM (LPC2xxx) / Cortex-Mx (STM32, LPC17xx...) (beliebiger Hersteller) Und wenn man schon einen AVR kennt, dann wird man für die kleinst-Anwendungen keinen PIC nehmen
-
Thread
WS2812B 800KHz PWM mit Transistor Pegelwandler
und fehlertoleranter sind als die der STM32. Oder anders ausgedrückt: STM32 ist eine Mimose im Vergleich zum AVR8. Da kann man schnell mal was zerschiessen, beim AVR8 muss man sich hingegen einigermaßen anstrengen, um die GPIOs kaputt zu bekommen
Gründen und für diese Anwendung c-hater schrieb im Beitrag #6842625: > Oder anders ausgedrückt: STM32 > ist eine Mimose im Vergleich zum AVR8. Da kann man schnell mal was > zerschiessen, Also die CPU ist ein STM32F446RET6 laut den Raterings unter Electrical characteristics im Datenblatt sind pro
-
Thread
Art der if-Auswahl nur Geschmackssache?
Beitrag #5380649: > Allerdings setzt Pascal genau wie C einige Berechnungen zu aufwändig um. > Für a32 = b16 x c16 muss zwingend b und c auf 32 Bit erweitert werden > und eine 32 Bit Multiplikation ausgeführt werden. Der AVR-GCC macht das schon seit geraumer Zeit besser, zumindest bei Controllern
4.6.4 scheints nicht zu können, der ist von > 2013. Auch -O0 ? Damit löst mein avr-gcc 4.8.1 (auch 2013) das auch noch nach __mulhi3 auch, mit -Os (was eigentlich Standard auf AVR sein sollte) aber sehr wohl nach __umulhisi3 (der 32=16*16 widening multiplication)
-
Thread
AVR als EPROM benutzen (C-Optimierung)
gültig sind (AVR-Eingänge werden einen Zyklus vorher gelatcht, daher 14). Die langsamsten 2716 erlaubten max 450ns Delay. Um die zu simulieren müßte der AVR mit 14/450e-9 = 32MHz takten. Den /OE muß man aber mit
ehe die Daten gültig sind > (AVR-Eingänge werden einen Zyklus vorher gelatcht, daher 14). > Die langsamsten 2716 erlaubten max 450ns Delay. Um die zu simulieren > müßte der AVR mit 14/450e-9 = 32MHz takten. > > Den /OE muß man
-
Thread
AVR AREF intern: 100n zu GND wirklich hilfreich?
> Sample&Hold Schaltung von ihr fern zu halten. @Stefan, @MaWin: Die S/H-Schaltung hat ja nur 14pF, und der Ladungsimpuls entsteht nur bei der ersten Messung, und die erste Messung soll man laut Datenblatt ja eh verwerfen. Stefan, danke für die AVR042 application note. Aber anbei mal Figure 6
www.mikrocontroller.net/topic/353666#3941875 Warum sollte ein CMOS-Multiplexer so hochohmig sein? Wenn es beim ATmega32 so ist (hattest Du auch mit AVcc getestet?), liegt das vielleicht an der Entwicklungsgeschichte der AVR. Daher kommen wohl auch die verschiedenen Meinungen, was man tun darf und was man lassen sollte
-
Thread
ARM Cortex gegen AVR
Jörg Wunsch schrieb im Beitrag #3032291: > Hast du innerhalb der AVR-Linie auch mega <> xmega <> mega32 kompatibel ??
schrieb im Beitrag #3032337: > Jörg Wunsch schrieb im Beitrag #3032291: >> Hast du innerhalb der AVR-Linie auch > > mega <> xmega <> mega32 kompatibel ?? Was soll "mega32" dabei sein? Ein AVR32? Nein, das ist was komplett anderes, aber in jeglicher Hinsicht. Um den ging's aber in der ganzen
-
Thread
Protokoll DC-3840 Handycam
Hallo, Ich habe 14,7456 gewählt weil sonst ein Mega32 übertacktet wird. 18.4320Mhz könnte auch klappen evt. die Warteschleifen verlängern. Hatte den SourceCode nur mal in der schnelle geschrieben. Gruß Ulrich
moment folgendes aus : [pre] X `<\0><17>JFIF<\0><1><1><1><1>,<1>,<\0><\0><\n> [<\0>C<\0><16><\f><\f><14><\f><\n><16><14><14><14><18><18><16><20><24>(<26><24><22><22><24>2$&<30>(:4><:488@H\N@DXF88PnRX`bhhh>Nrzpdx\fhd [<\0>C<1><18><18><18><24><22><24>0<26><26>0dB8Bdddddddddddddddddddddddddddddddddddddddddddddddddd
-
Thread
Anfänger in C und welcher PIC (evtl. uno32) ist geeignet ?
programmierst, dann macht der C-Compiler die Arithmetik für dich. Wenn du dem sagst, er soll zwei 32-Bit Integer addieren, dann macht der das. Vollkommen egal, ab das Target ein 8-Bit AVR, ein 16-Bit PIC oder ein 32-Bit ARM ist. Der einzige Unterschied ist, daß es auf den kleinen µC länger dauert.
gerade richtig. Meist mache ich mir meine > eigenen Bords. Wobei die man selbst bei den 16-Bit und 32-Bit PIC noch mit Controllern im DIP-Gehäuse relativ gut versorgt wird (PIC24/dsPIC gibts in (14)/18/20/28 Pin und PIC32 zumindest noch in DIP 28. Das kann man leicht noch was auf Lochraster aufbauen.
-
Thread
OSCCAL extrem?
Was uebrigens sehr gut geht ist das Kalibrieren/Synchronisieren des RC Oszillators auf einem 32kHz Quarz. Sofern denn ein 32kHz Quarz da ist. Was also erst bei den Megas moeglich ist. Damit erreicht man zwar keine so hohe Aufloesung wie 14.746MHZ aber eben doch besser wie die 2% welches ein UART
bist bloß nicht in der Lage, das richtige Schema zu finden oder es zu verstehen. Dabei ist das beim AVR8 doch echt übersichtlich (insbesondere im Vergleich zu den 32-Bittern jeglicher Coleur...) > Leider kann ich nach einem elenden Hardware-Crash momentan nicht mal > schnell an einem Controller "
-
Thread
Einfache Sensortaste
AVRs. Ich hab mal 1M und 220pF genommen, da komme ich auf folgende Zeiten bei 11MHz: [pre] Time: 14 Time: 14 Time: 14 Time: 14 Time: 50 ---- berührt Time: 52 Time: 56 Time: 54 Time: 56 Time: 62 Time: 14 ---- losgelassen Time: 14 Time: 14 Time: 14 [/pre] Funktioniert also astrein.
Und zu guter letzt das AVR-Studio Projekt.
-
Thread
Einstieg in die Welt der Mikroprozessoren
klar. Und wenn du schon C kannst ist es ja noch besser! ARMs (nicht AMRs *G*) sind viel schneller (32 Bit) und für den Hobbybereich unnötig würd ich sagen. Ob PIC oder AVR ist glaubensfrage denke ich, aber hier aufm Forum benutzen die meißten AVRs und du wirst mit denen sehr gut unterstützt. Wenn
entscheiden, da sie ein bißchen von der klassischen uC-Form abweichen. AVRs sind 8-Bit Maschinen, ARMs 32Bitter und PICs gibt's meines Wissens in so komischen Wortbreiten wie 12 und 14bit (gab's nicht sogar welche mit weniger als 8bit???). Jetzt werd ich wahrscheinlich gleich von PIC-Anhängern geschlagen
-
Thread
Zeigt her eure Kunstwerke (2) Gesperrt Bilder
Meine DCF Nixie Uhr, noch ohne Gehäuse IN-14 , mit Attiny2313
nun ja aber mit dem Adapter habe ich 17 Euro gespart http://www.ebay.de/itm/Flap-QFP32-TQFP32-PQFP32-TO-DIP32-Programmer-Socket-Adapter-Conveter-IC51-D0090-/130834643503
-
Thread
ATMEGA 328p Programm Upload nicht Möglich avrdude: stk500_loadaddr(): (a) protocol error, expect=0x1
error, expect=0x14, resp=0x04 avrdude: stk500_paged_write(): (a) protocol error, expect=0x14, resp=0x10 avrdude: stk500_cmd(): protocol error Problem beim Hochladen auf das Board. Hilfestellung dazu unter http://www.arduino.cc
Quatsch. Ja, kein "undefinierter Zustand" aber auch nicht sicher, deshalb empfiehlt ATMEL es auch in AVR042 ... http://www.atmel.com/Images/Atmel-2521-AVR-Hardware-Design-Considerations_ApplicationNote_AVR042.pdf Marc V. schrieb im Beitrag #4619740: > Ich habe unzählige Male auf dem Steckboard etwas
-
Thread
Full speed USB mit mikrocontroller
besonders guten Code, d.h. ein zu kleiner PIC ist erst recht tödlich. Ich rate Dir zu einem PIC32MX250F128B. 28 Pins, gibts als lochrastergeeignetes DIL, einfach zu beschalten (wie der 18F14K50, den Du kennst), ABER: völlig anderer Prozessorkern. Das Teil läuft mit 50 MHz, hat 128k Flash und 32k
code in die entsprechende ISR packt... @Stephan B.: Ich versuche mein Glueck erstmal mit den PIC32. Im Moment denke ich das kann was werden. Sollten alle Stricke reissen gehe ich danach wieder zu AVR controllern zurueck. Ich wuerde an sich lieber kein CDC device benutzen, sondern direkt ne USB library
-
Thread
Alternative Firmware für Sparmatic Zero Heizungsthermostat
it myself I've understood that I need the following: * I can flash the Thermy with the use of a AVR-ISP mkII like this one: "http://www.reichelt.de/Programmer-Entwicklungstools/DIAMEX-ALL-AVR/3/index.html?;ACTION=3;LA=446;ARTICLE=110345;GROUPID=2969;artnr=DIAMEX+ALL+AVR;SID=14ULstz38AAAIAAH4vF7s566cf936ec6a279df940bedfcbdc676a" * I have to flash with 3.3V and 20kHz and AVR Studio * I have de make a cable from the AVR-ISP mkII to the Thermy like this: "http://www.mikrocontroller.net/topic/153235#1626448" * The latest software version is 0.14. I found the software here
-
Thread
AVR32 Studio Problem
) avr32-gdb: <not found> (Need version 6.7 or newer) avr32-g++: <not found> (Need version 4.2 or newer) avr32-gcc: <not found> (Need version 4.2 or newer) avr32-as: <not found> (Need version 2.17 or newer
weiter gekommen mit AVR32Studio und toolchain 2.14 und zwar in Properties C/C++ Bulid -> Discovery Option -> discovery profile-> Standart make AVR32/GNU Linux c per projekt
-
Thread
Eine Frage bzg. Macro in AVR-Assembler
Danke!!! Das arbeitet! Aha, interessant - und wie funktioniert nun das von Ihnen verlangte > ldix32 r14,0xf1c2658a d.h. das automatische Hochzählen von Registernummern?
Maxim B. schrieb im Beitrag #6664313: > int32_t https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Ganzzahlige_Datentypen_.28Integer.29
-
Thread
Fröling Heizungssteuerung auslesen.
Fröling p2 Kessels auszulesen. Das 2. Projekt benutzt die > selbe Softwarebasis und läuft auf einem AVR NET IO board, das es bei > Pollin zu kaufen gibt, also auf einem AT MEGA32. Die NET_IO liest die > Heizungsdaten über die serielle Schnittstelle und gibt Sie dann in Form > einer Webseite über die
Uebergangsbetrieb - Heizen 08.01.2018;13:54:02;2.0-3.0-3.0;Uebergangsbetrieb - Heizen 08.01.2018;14:09:02;2.0-3.0-9.0;Uebergangsbetrieb - Heizen 08.01.2018;14:11:32;2.0-3.0-3.0;Uebergangsbetrieb - Heizen 08.01.2018;14:26:32;2.0-3.0-9.0;Uebergangsbetrieb - Heizen 08.01.2018;14:26:38;6.0-11.0-7.0;
-
Thread
Maskieren modern?
praktischen Gründen macht man Datumsarithmetik auf Basis des julianischen Datums. Dann ist es auch für den AVR schnell geschrieben: [c] constexpr uint32_t julianDay(const uint16_t year, const uint8_t month, const uint8_t day) { const size_t a = (14 - month)/12; const size_t y = year+4800-a;
Wilhelm M. schrieb im Beitrag #7380330: > constexpr uint32_t julianDay(const uint16_t year, const uint8_t month, const uint8_t day) { > const size_t a = (14 - month)/12; > const size_t y = year+4800-a; > const size_t m = month + 12*a - 3; >
-
Thread
Division mit WinAVR sehr langsam?
46 | *48* | *47* | | 41 | 13 | *14* | 13 | | 91 | 30 | *32* | 30 | | 141 | 47 | *48* | 47 | | 42 | 14 | *15* | 14 | | 92 | 30 | *33* | 30 | | 142 | 47 | *49* | 47 | | 43 | 14 | *15* | 14 | | 93 | 31 | *33* | 31 | | 143 | 47 | *49* | *48* | | 44 | 14 | *16* | 14 | | 94 | 31 | *34* | 31 | | 144 | 48 | *49* | 48 | | 45 | 15 | *16* | 15 | | 95 | 31 | *34* | 31 | | 145 | 48 | *49* | 48 | | 46 | 15 | *17* | 15 | | 96 | 32 | *33* | 32 | |
-
Thread
ATMEL (Microchip) erhöht die Preise
Abrundung am unteren Ende vielleicht noch STM8. Ist das heutzutage wirklich noch nötig? Preis: STM32F030F4 Stromverbrauch: STM32L0-Serie Bauform: STM32L011 (TSSOP14 oder QFN-3x3)
, ist die Umstellung nicht so dramatisch. Wir haben hier neulich auf Kundenwunsch hin von einem STM32F4 auf NXP LPC43xx portiert - das war innerhalb von ein paar Tagen gegessen. Natürlich hängt so etwas immer vom konkreten Fall ab, aber die Umstellung hier von AVR auf STM32 war da um einiges hakeliger
-
Thread
ATMEL ARM SAMD ohne Framework programmieren
pin 10 0, // pin 11 0, // pin 12 PORT_PA14 , // pin 13, ARDUINO LED }; void pinMode( uint32_t ulPin, uint32_t ulMode ) { switch ( ulMode ) { case INPUT: PORT->Group[0].DIRCLR.reg = pin2portConnectionTable[ulPin]; break
beim AVR geklappt ). Auf dem Board sind für 32kHz XTAL keine Cs. Scheinbar hat aber das Kabel gereicht, um den Oszillator anzuschwingen. Dann habe ich den Clock scnell wieder auf den internen 8MHz Osczi umprogrammiert
-
Thread
Zahlenrätsel: Wer knackt den Code?
weisst also, was ein Kabel ist. ;-) Ich habe aber doch die Hoffnung, dass du nicht einfach einen STM32 und einen AVR Beine nach oben auf den Tisch gelegt und per Lötkolben verbunden hast. Sondern irgendwas anderes gemacht hast. Wahscheinlich auch keinen der beiden Controller direkt als Chip eingelötet
Parität, kein Stoppbit und 9600 Baudrate Der ATMEGA8 hat den internen 8Mhz Oszi aktiviert, beim STM32 weiß ich's ehrlich gesagt nicht (72 Mhz?). Das Muster sehe ich da: 2 -> 12 3 -> 14 4 -> 16 5 -> 18 Oder bilde ich mir das ein? ^;-) Den Code werde ich heut Abend mal zurechtstutzen und dann
-
Thread
40 Spannungen einlesen und an AtMega8 übertragen
Für die Übertragung brauchst Du pro Stufe einen Transi und 3 Widerstände. AVR Ausgang => 33k => Basis, Emitter auf GND, Kollektor => 10k gegen +Vcc der nächsten Stufe + 100k an nächsten AVR Eingang Der nächste AVR sieht bei Low am vorherigen Ausgang seine eigene Vcc, bei High
sonst die gesamte Ladespannung über diesem AVR an. Zumindest kurzzeitig.
-
Thread
Arduino NANO A6_A7
sind ja nicht alles Fachleute http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-42735-8-bit-AVR-Microcontroller-ATmega328-328P_Datasheet.pdf Seite 19 Table 6-1. PORT Function Multiplexing beschreibt es doch ganz ordentlich ADC6 und ADC7 gibts nur im 32-poligem Gehäuse und die haben
/files/imagecache/Original/wysiwyg_imageupload/28714/AVR%20IO%20Circuit.jpg ausführlicher *.) https://www-user.tu-chemnitz.de/~heha/viewchm.php/hs/ATmegaX8.chm/bild/b14-5.png der analog Multiplexer http://winavr.scienceprog.com/sites/default/files
-
Thread
I2C Display einfache Frage
eingebunden habe (die auf meiner Platte liegen) und so lief ein OLED-Display auch auf einem CH32V003, einem STM32F030 / F103 / F411. Hier jedoch nur die Datei, bei der AVR und STM8 eingebunden sind. Bei Verwendung für AVR ATmega328 und AVR-GCC als Compiler, hat das erzeugte Kompilat bei mir eine
AVRStudio.exe > Anwendungsversion: 4.19.0.730 > Anwendungszeitstempel: 4e569ce0 > Fehlermodulname: COMCTL32.dll Dann vielleicht könnte dir auch helfen: https://www.mikrocontroller.net/topic/316052#3420336 Ich mache es mit AVRStudio 4.19 so: avr-toolchain-installer-3.4.2.1573-win32.win32.x86.exe installieren
-
Thread
ItoA mit Uint64_t
; default: return itoa_8( u, p, d, n ); } } static inline char* itoa_32(uint32_t u, char* p, uint32_t d, uint8_t n) { switch(n) { // 1000000000 case 10: d = u / 100000000; p = out( dd(d), p ); [[fallthrough]]; case 9: u -= d * 100000000;
libsupc++ und "Feinheiten" im Compiler wie Exception-Handling. Ob das aktuelle nicht-Standard double (32-Bit) Probleme machen würde, kann ich nicht sagen, dito für den eigenwilligen Ansatz der avr-libc, float-Funktionen zu implementieren wie: [c]extern double log(double __x) __ATTR_CONST__; #define logf
-
Thread
AVR TWI Master und Slave Funtionen in C
Hallo, anbei relativ einfache AVR TWI Funktionen in C für die Kommunikation zwischen zwei uC. Für den Master habe ich den ATMega32 und den Slave ATMega8 verwendet. Sollte aber auch auf anderen ATMegas laufen, sofern das TWI implementiert
C:\Users\Simon\Desktop\Master\TWI_Master\default/../Master.c:105: undefined reference to `Delayloop32' make: *** [Master.elf] Error 1 Build failed with 14 errors and 0 warnings...
-
Thread
Pollin Evaluation Board
und bei Pollin fündig geworden. Ich habe mir das Atmel Evaluation Board Version 2.01 bestellt für 14,95. Ich habe das Board schnell geliefert bekommen, es gleich aufgebaut und war bester Hoffnung. Als Anfänger bin ich Schritt für Schritt vorgegangen. Als erstes habe ich das AVR Studio installiert,
hast du ja Recht gibt's von Pollin fast nichts bzw. ausser der Schaltplan nichts, irgenwo sollen die 14.90 Euro kommen oder? ich habe bisher keine Ahnung von BASCOM da ich gleich mit dem AVR-Tutorial angefangen habe entspricht AVR-Studio! für das Board gibt's bei Pollin ein TOOLTEST.HEX der man gleich
-
Thread
-
Thread
MMC/SD Karte: mmc_lib Version 2.0
(1<<MMC_Chip_Select); MMC_Direction_REG |= (1<<SPI_SS); Dazu im Header : #if defined (__AVR_ATmega32__) #define SPI_DI 6 #define SPI_DO 5 #define SPI_Clock 7 #define MMC_Chip_Select 3 #define SPI_SS 4 #endif Sollte so eigentlich alles hinhauen, ist
, aber bei WinAvr scheint man für die 32bit ja einen unsinged long long zu brauchen...komische Sache. Ich dachte mir immer: char - 8 bit short - 16 bit long - 32 bit long long - 64 bit Naja, scheint nach
-
Thread
Speicher ATMega128
ein Programm das auf dem ATMega128 läuft. Darin werden neben dem Code ein paar Arrays verwendet. Der avr-gcc packt den code in das .text segment und die arrays in das .bss segment. Das lässt sich soweit gut nachvollziehen. Nun ist das .bss segment aber voll (32k). Sobald ich ein byte mehr im array verwende
--output ac_main.elf -L. -L"C:\Programme\WinAVR\lib" -Wl,-Tdata=0x801100,--defsym=__heap_end=0x8090ff -lm -lgcc -lc -litcl32 -litk32 -Wl,-Map=ac_main.map,--cref c:\WinAVR\bin\..\lib\gcc\avr\3.4.3\..\..\..\..\avr\bin\ld.exe: cannot find -litcl32
-
Thread
Vorzeichenbehandlung und Typcast
auf int-Größe und werden daher nur nach unsigned promotet. Auf Linux-System: (int32_t)(ADC - offset) = -3 Auf AVR: (int32_t)(ADC - offset) = 65533
32 bit. Da muss aber doch dann längenmäßig auch nichts mehr promoted werden, weil das dann doch schon die ganze zeit 32 bit ist? > Auf Linux-System: > (int32_t)(ADC - offset) = -3 > > Auf AVR:
-
Thread
Webserver mit ISA Netzwerkkarte
" is undefined C:\daten\easyweb\msp430x14x.h 114 Error[Pe020]: identifier "sfrb" is undefined C:\daten\easyweb\msp430x14x.h 119 Error[Pe020]: identifier "sfrb" is undefined C:\daten\easyweb\msp430x14x.h 124 Error[Pe020]: identifier "sfrw" is undefined C:\daten\easyweb\msp430x14x.h 134 Error[Pe020]: identifier "sfrw" is undefined C:\daten\easyweb\msp430x14x.h 180 Error[Pe020]: identifier "sfrw" is undefined C:\daten\easyweb\msp430x14x.h 182 Error[Pe020]: identifier "sfrw
-
Thread
Zeitkritisch ?
FrankH schrieb: > Mit den 32Bit-Werten liege ich auch gerade noch so in meinem geforderten > Bereich. Was hast du jetzt alles auf 32 Bit gehoben? Frage: Müssen m und n 32 Bit sein, oder reichen dort auch 16 Bit? Cn wird
Datentypen. Ein Unterschied zwischen PC und µC ist zb, dass ein int auf dem PC heutzutage meist 32 Bit ist, während er auf deinem AVR nur 16 Bit ist. Das kann den alles entscheidenden Unterschied machen, wenn während einer Berechnung ein Zwischenergebnis entsteht, welches überläuft. > Ich habe