-
Thread
Mit welchem Programm programmiert ihr Controller?
funktionierenden > Anleitung durchaus freuen. Aus den release-notes: "# $Id: NEWS 308 2012-11-05 16:41:14Z joerg_wunsch $ Summary of changes in AVaRICE 2.13" Vielleicht liest er deinen Wunsch ja ;) Oliver
AVR (ATmega/ATtiny): Bascom (Vollversion) ESP32: Arduino PC: Python oder Batch für "einmal hingerotzt und nie wieder verändert"
-
Thread
AZ-Delivery registriert gerade massenhaft gängige Komponentenbezeichnungen als Marken
Prozessoren, Boards, Display Controller, usw. zu finden ist. ADS1115, AM2302, AMICA, AMS1117, ATMEGA16U2, ATMEGA328, BME280, BMP180, CH340, CP2102, D1 Mini, DHT11, DHT22, DS18B20, DS3231, GY-906, HC-05, HC-06, HC-SR501, HD44780, IRF520, LM2596, LOLIN, MakerHawk, MAX7219, MB-102, MEGA2560, MG90S, MG995
nach hinten losgeht, wenn Microchip davon Wind bekommt? Mario P. schrieb im Beitrag #6852400: > ATMEGA16U2, ATMEGA328, Damit ist diese Firma bei mir ausgelistet. Matthias
-
Thread
Welchen Arduino soll ich kaufen?
MaWin schrieb im Beitrag #6850142: > Also ja: nimm ein DIP Board mit ATmega168 als USB Interface. *ATmega16U2
meisten Arduino Nutzer keine Rolle, es sollte aber dennoch erwähnt werden, es gibt auch Clones mit dem ATmega16U2, sind dann aber natürlich etwas teurer als die Varianten mit CH340.
-
Thread
Spannungswerte als ASCII in serielle Monitor darstellen, UART
und char für Messwerte zu benutzen empfehle ich: [c] #include <stdint.h> uint16_t get_ADCvalue() { ... uint16_t Wert=ADC; return Wert; } ... uint16_t digit = get_ADCvalue(); [/c] uint16_t deswegen, weil das ADC Register dieses Format hat.
definierte Sachen wie short und char für Messwerte zu > benutzen empfehle ich:#include <stdint.h> > uint16_t get_ADCvalue() > { > ... > uint16_t Wert=ADC; > return Wert; > } > ... > uint16_t digit = get_ADCvalue(); > > uint16_t deswegen, weil das ADC Register dieses Format hat. ich habe
-
Thread
ATtiny2313A und ESP-12F/M3 UART Problem
wurde. Selbiges Problem. ATmega funktioniert, ATtiny nicht. Habe ebenfalls versucht mit Putty Zeichen an den ATtiny zu senden. Die kamen alle Problemlos zurück. Kein Byte wurde verschluckt. Allerdings vermute ich das der ESP
Mit einem 16MHZ Quarz funktioniert das ganze. Danke an Sebastian. An die Hypochonder (Phtefan und kotz) hier, so ein Ekelhaftes Verhalten sieht man selten. Schade das man solche Kommentare nicht löschen kann.
-
Thread
MAX485: empfängt eine Null, die keine ist
empfängt der AVR nach jedem gesendeten Zeichen ein nachgestelltes > '/0 Ich schätze mal, dass du UTF-16 schickst. Leo
leo schrieb im Beitrag #6848441: > Ich schätze mal, dass du UTF-16 schickst. Das Problem tritt auch auf, wenn ich mittels HTerm die Zeichen einzeln sende. Oder, was könnte die Verwendung von UTF-16 für mich und den AVR bedeuten? EDIT: wenn ich Hyperterminal und
-
Thread
Viele Taster im Haus abfragen: Modus geeignet?
wird erkannt (16 geht wieder auf Low) T16 wird erkannt (Tippen auf Pin 16) H16 wird erkannt (16 geht wieder auf Low) D16 wird erkannt (Doppeltippen) Wenn ich nur auf das High Low signal reagiere, dann ist die
mit 16A abgesichert ist.
-
Thread
Stoppuhr Code Optimierung
define F_CPU 8000000 #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> uint16_t damn [10] = {(0x44), (0x7D), (0xA4), (0x34), (0x19), (0x16), (0x06), (0x7C), (0x04), (0x14)}; uint8_t counts[4]; volatile uint16_t var; volatile uint16_t value; volatile uint16_t digit; volatile uint16_t x; volatile uint16_t x1; volatile uint16_t x2; volatile uint16_t x3; int main(void) { DDRB |= (1<<PB0); //Datenrichtungsregister DDRC |= 0x1E; DDRD |= 0xFB; MCUCR |= (1<<ISC01
-
Thread
Countdown ATMega8
0x90; volatile uint16_t digit = 0x90; volatile uint16_t c = 0x90; volatile uint16_t btch = 0; int main(void) { uint16_t zahl = 0; DDRD |= (0x7F); DDRC |= (0x1E); TCCR0 |= (1<<CS00) | (1<<CS01);
Zeile 10: volatile uint16_t c = 0x90;
-
Thread
DHT22: Datenblatt + Pegel passt nicht / ungenau
Temperatur/Luftfeutigkeits Sensoren besorgt mit 1-Wire Interface. Datenblatt im Anhang. Ich nutze einen Atmega328P und Microchip Studio. Es gibt verschiedene Bibliotheken im Internet um den Sensor anzusteuern. Im Anhang mal die Pegel der Leitung aufgezeichnet. Die Probleme fangen schon mit der Startsequenz
Sef C. schrieb im Beitrag #6844665: > Ich nutze einen Atmega328P auch Abblock Kondensatoren (VCC-GND)? wie groß ist der pullup an Data, wie lang die Leitungen?
-
Thread
I2C Implementierung ATmega32 in C funktioniert nicht
Hallo zusammen, ich möchte mit meinem ATmega32 die Sensorwerte (Temperatur, Druck, Luftfeuchtigkeit) von einem MS8607-PHT-Sensor auslesen. Den ATmega32 programmiere ich in C mit Microchip Studio. Für den Sensor habe ich diese Bibliothek
STATUS_ERR_TIMEOUT = 0x02, }; struct i2c_master_packet { // Address to slave device uint16_t address; // Length of data array uint16_t data_length; // Data array containing all data to be transferred uint8_t *data; }; void i2c_master_init(void); enum status_code i2c_master_read_packet_wait
-
Thread
Wechselrichter Hoymiles HM-xxxx 2,4 GhZ Nordic Protokoll?
, so wie es aktuell verstehe, aber die CRC8s und CRC16_P stimmen nie: 01 [...] CRC8 CRC16_H CRC16_L 02 [...] CRC8 CRC16_H CRC16_L .... 8X [...] CRC16P_H CRC16P_L CRC8 CRC16_H CRC16_L CRC8: über Paketpayload ohne CRC8 und CRC16 CRC16: ist implementiert
:01:10.651 -> 89 63 50 03 16 63 50 03 16 01 2B 00 56 09 5C 13 85 09 A5 02 B8 01 FF DE 12:01:10.651 -> 89 63 50 03 16 63 50 03 16 01 2B 00 56 09 5C 13 85 09 A5 02 B8 01 FF DE 12:01:10.698 -> 89 63 50 03 16 63 50 03 16 01 2B 00
-
Thread
Innenraumlüfter Transporter mit PWM steuern
durchzusteuern. Die 10KHz höre ich gerade so, etwas höher würde sicher reichen, aber da muß ich den ATmega anders takten, 20KHz gehen mit dem 16Mhz Quarz nicht. Ich hab den MCP1407-E eingesetzt, der sollte es bringen. Dumme Frage: Ich kann doch die PWM Frequenz nur durch den Prescaler und durch die
Reinhard T. schrieb im Beitrag #6931818: > 20KHz gehen mit dem 16Mhz Quarz nicht. Damit gehen sogar 31kHz im Phase Correct Modus. 16.000.000 / 256 = 62.500
-
Thread
#define und #include Problem
Hey, ich würde gerne mit einem Atmega328P per UART mit einem USB-TTL Adapter kommunizieren. Hierbei stocke ich etwas bei folgendem Problem: Ich möchte gerne in der main.c meine CPU Frequenz und Baudrate mit [c] #define F_CPU 8000000UL
siehst du alle Preprocessorersetzungen. Sef C. schrieb im Beitrag #6842613: > #define MYUBRR F_CPU/16/UART_BAUD_RATE-1 Die Makros sollte man klammern.
-
Thread
Platformio + pyUPDI Upload Probleme
Leider habe ich ein paar Probleme, wenn ich den "UPLOAD" Button in Platformio benutze: Processing ATmega808 (platform: atmelmegaavr; board: ATmega808; framework: ) -----------------------------------------------------------------------------------------------------------------------------------------
via `-v, --verbose` option CONFIGURATION: https://docs.platformio.org/page/boards/atmelmegaavr/ATmega808.html PLATFORM: Atmel megaAVR (1.5.0) > ATmega808 HARDWARE: ATMEGA808 16MHz, 1KB RAM, 8KB Flash PACKAGES: - tool-avrdude-megaavr 1.60300.191015 (6.3.0) - toolchain-atmelavr 1.70300.191015
-
Thread
Nulldurchgangsdetektor 400v
Huch, da hab ich wohl eine 5 vergessen. Sollten 25K Ohm sein, da Typ. Vorwärtsstrom - 16mA. Die Tipps mit den Dioden oder den Wechselstrom Optokopplern ist sehr gut, danke. Die aufwändigere Schaltung lese ich mir jetzt mal durch, sehr interessant, danke!
Aoye 860 Heißluft Lötstation nach dem ich den originalen Unfug entsorgt hatte. Da ist jetzt ein atmega88 drin der die Pumpe mit Phasenanschnitt und die Heizung über das im Handstück integrierte Thermoelement per Schwinungspaketsteuerung mit PID regelt. Gruß, Pille
-
Thread
Arduino-ATtiny85: Startup Time verkürzen
ATtiny85 auf Steckbrett, 4 MHz-Quarz, sonst absolut nichts, bei 5.0 V mit Low-Fuse-Byte EF, das heißt '16K (16384) CK 14CK + 4 ms': vom Einschalten bis zum Pin-Wechsel dauert es ca. 8.6 ms. Wie zu erwarten war. Nichts mit 100 ms. > Keramik-Kondensatoren am Quarz ... steht 100 drauf, also 10 pF Sind das
Frage nach einem dazu passenden Quarz-Datenblatt eher was Weltfremdes. Fast immer sind an einem ATMega, oder ATTiny 2 x 33 pF (27...39 pF) die frequenzmäßig (!) passende Bürde, außer bei 4,1943 MHz - die wollen bei mir meist das Doppelte. Ich habe allerdings noch nichts Quarzgenaues gebaut, wo eine
-
Thread
Pulslänge messen mit ATMega48 und Bascom
Beitrag #6858878: > Ich spare dadurch 2 Ein-/Ausgänge bei dem kleinen ATTiny! Was nu? ATTiny oder ATmega? Ein ATmega hat im Normalfall eine Input-Capture-Unit. Die erledigt sowas in Hardware. Ein Tiny hat die eher nicht.
, TW1 = 55535 dann Wert TW2 - TW1 = -50535! Die Rechnung muß man natürlich unsigned machen (uint16_t).
-
Thread
Microcontroller aussuchen
paar Register schreiben, Poti auslesen, umrechnen und per SPI weiter geben. Nur hat der SPI Baustein 16bit Register?
STM32-Flash seit Jahren mit ca 33 MHz daher gurkt? Ja. Zum Glück hat man dieses Problem mit einem 16/20 MHz AVR, den kaum jemand über 8 MHz betreibt, nicht.
-
Thread
Neu hier und Anfängerfragen bezüglich Programmspeicher
Den ATmega 1284 gibt es im 40 Poligen PDIP Format. 128 kB Flash, 16 kB RAM Als externen Speicher empfehle ich FRAM mit I²C Schnittstelle. Das ist einfach anzuwenden und behält seine Daten bei Stromausfall
Programmspeicher wird in Words adressiert Datenblatt: ...the Flash is organized as 32K/64K/128K × 16 2. Wozu braucht der ATMega 24560/2561 einen 17 Bit Programmcounter Datenblatt: ...Program Counter (PC) is 15/16/17 bits wide, thus addressing the 32K/64K/128K program memory locations. MfG
-
Thread
Genaue Widerstandsmessung mit uC und OPV
Hallo, ich möchte mit einem Atmega128-16AU und einem OPV eine möglichst genaue widerstandsmessung durchführen, komme aber leider nicht auf einen grünen Zweig, Schaltung siehe pdf anbei. Ich brauche mindestens 10 AD-Schritte pro Ohm
ratiometrisch zu messen. Beim ADS1100 ist nur eine ratiometrische Messung vorgesehen, dafür hat der auch 16 bit, der ADC vom Atmega nur 10 bit.
-
Thread
Interrupts bei Fahrradtacho und clock
für die Uhrzeit schlecht zu realisieren. Es wird wohl ein STM32 als Controller eigesetzt oder ein ATmega bei 3,3V Wie realisiert man das am besten?
Beitrag #6833548: > Den Radumfang meiner 28" Räder kenne ich eine Größenordnung genauer. Bei > 2,16 m sind 0,3% (6,5 mm) immer noch gut zu messen.
-
Thread
LED-Streifen dimmen
Mikrocontrollers. Du musst nur den entsprechenden Ausdruck in deinen Quelltext schreiben. Mindestens 16 Bit PWM vorausgesetzt.
}; int main() { for (int i = 0; i <= 160; i++) { uint16_t pwm = data[i]; printf("%d,", pwm); } } [/c] Am Anfang wiederholen sich einige kleine Zahlen, weil die 16 Bit Auflösung der PWM nicht ausreicht, um diese feinen Abstufungen darzustellen
-
Thread
Verfügbare µC
ich habe auch noch 40 Stueck 16F684. Die werden wohl reichen. Komischerweise kann man die sogar im Moment noch kaufen. Da kann die Krise ja nicht so schlimm sein.
I2C, I2S, ETH-MAC, 2 serielle Schnittstellen, 2x DAC, ADC (ok, grausige Genauigkeit), diverse PWM, 16 LED-Dimmer-Kanäle. Ach ja, WLAN und BT hat er auch noch.
-
Thread
HD44780 - EMI Problem
der 230 V Seite, Printnetzteil von Meanwell zur Versorgung des Nano und Kleinkram) versorgt das 2x16 HD44780 Display über 4 Datenleitungen. Das Kabel zum Display ist geschirmt und ca. 50 cm lang. Schirmung ist mit GND verbunden. RS, RW, E, D4, D5, D6, D7 haben 100 Ohm Serienwiderstände und 15 nF Kerkos
eingeben, Standart-Zeiten programmieren (nur die Zeit im nichtflüchtigen Speicher ablegen. Bei einer 16er Tastatur kannst du z.b. bei einer MENO-Taste dann 10 Werte fest o. Variable hinterlegen. Auf Wunsch sogar mit Beschreibung. Da gibt es gigantische Möglichkeiten.
-
Thread
Einen Softcore (AVR) an andere FPGA anpassen?
XMEGA_FLAG_S] = sreg_out[`XMEGA_FLAG_N] ^ sreg_out[`XMEGA_FLAG_V]; sreg_out[`XMEGA_FLAG_Z] = RD_16_IS_ZERO; end [/vhdl] *R* und *rd* sind 16bit Register. Hier wird aber dem 16Bit *R* <= ( *1Bit* + *16Bit* 'rd') zugeordnet. Ein Bit von *rd* fällt dadurch weg. Ich weiß gerade nur nicht welches
Projekt eingebunden. Ich habe den Autor schon daraufhin kontaktiert. Ich versuche ja nur den ATmega32U4 in eine Anlogic Egle4 FPGA zu portieren.
-
Thread
c avr ((1+2)*4 < -3)
zu einenm falschen Ergebnis. Kann mir bitte jemand erklären was hier passiert? [c] volatile int16_t a,b,c; volatile uint16_t d; volatile int8_t erg; a = 1; b = 2; c = -3; d = 4; if ((a+b)*d > c) { erg = 1; } else if ((a+b)*d < c) { erg = -1; } else { erg = 0; } [/c]
Wert -1. Das ist korrekt. Der Vergleich erfolgt im größeren Format und das ist auf nem 8Bitter uint16_t. Aus -3 wird somit 0xFFFD = 65533 Und 12 < 65533 Auf nem 32Bitter ist aber int > uint16_t, da int == int32_t.
-
Thread
AtMega Pin- und Funktionskompatibel
, kann man dazu nichts sagen. Der ADC-Code ist ja auch unbekannt. Die ADC-Funktionen wurden vom ATmega16 zum ATmega164 etwas erweitert. Preislich sollten die neueren Typen sogar günstiger sein.
woanders und heißen auch anders und haben andere Funktionen. Das Dokument "AVR505: Migration between ATmega16/32 and ATmega164P/324P/644P" aka "Microchip doc8001.pdf" hast du dir schon mal angeschaut?
-
Thread
I2C Zwischenspeicher für RasPi - ATmega 400kHz
Hallo, ich programmiere einen ATmega als I2C slave, den man mit wie üblich ansteuern kann: Registernummer senden, dann Register lesen/schreiben. Das funktioniert problemlos, wenn der Master ein anderer ATmega ist, führt aber zu Problemen
beim repeated start. Den repeated start vollführt er nämlich, während der ATmega den clock stretcht. Der ATmega bemerkt den repeated start also nicht. Das Problem liegt also eindeutig beim RasPi. Dennoch möchte ich, dass mein ATmega auch von einem RasPi angesprochen werden kann
-
Thread
CNC - Lohnfräsen aus Chine
ausreichen (weiß nicht aber dort ist eventuell noch kein Controller dabei? Grbl auf nem Arduino/Atmega kostet auch nicht all zu viel) Leiterplatten Isolationsfräsen ist sowieso was ganz nützliches, das können die billigen Dinge allemal. Und nen Satz billige Fräser sind am Anfang sicherlich auch
wie kann ich das verbessern gab's eigentlich keine Rückantwort. Die größten Teile habe ich mit nem 16mm Fräser abgenommen, den Rest mit nem 6mm Fräser also eigentlich nichts spannendes. Nachdem ich es selber gefräst habe fand ich das schon merkwürdig. Das Teil hat mich eine Woche gekostet, aber davon
-
Thread
Empfehlung für Mehrkanal Datenrekorder?
16) Digitalkanäle mit ~100kHz Auflösung (es müssen einige Digitalsignale dekodiert werden, insb. AB Signale > 1kHz) Daten müssen sich kontinuierlich triggern lassen (teilweise mit einer komplexeren logic
Beitrag #6813484: > mind. 8 Analogkanäle mit mind. 8bit und jeweils mind. 1kHz > mind. 8 (besser 16) Digitalkanäle mit ~100kHz Auflösung (es müssen > einige Digitalsignale dekodiert werden, insb. AB Signale > 1kHz) Salea Logic 8/16 oder Digilent Analog Discovery. Software über Python / Sigrok.
-
Thread
Pulslänge mit STM32 Timer vermessen
nicht aber vielleicht hilft Dir meine Idee weiter. Hier meine Idee: Viele PIC MCU‘s haben einen 16Bit Timer (z. B. Timer1) mit Gate control. Wenn man am CLK Eingang eine Frequ. von z. B. 1Mhz anlegt u. den zu messenden Puls am Gate anlegt dann erhält man die Pulsbreite in μs (siehe Skizze in Anhang
topic/350952#3900014 oder https://www.mikrocontroller.net/topic/517811#6678474 oder wenn es ein ATmega sein soll https://www.mikrocontroller.net/topic/233699#2365020 Aber vielleicht erbarmt sich ja jemand, dem TO die Einstellungen für HAL zu nennen. Was dort anzuklicken ist, ist ja weder zündend
-
Thread
Arduino Nano interner Temperatursensor auslesen
genaueren hinschauen. Deshalb mein Hinweis. Ich habe vor 18 Monaten mehrere 'WAVGAT Pro Mini ATMEGA328P 328 Mini ATMEGA328 5V 16MHz' Boards bei AliExpress bestellt, und bekommen habe ich Boards mit einem 'AVGA328P' (= LGT8F328P) Chip. Das habe ich aber erst bemerkt, als ich die Boards mit einem Blink-Sketch
einsichtig. Ja, so geht das hier...... Merke: Ihm hat einen Nano mit einem stinknormalen ATMega328P. Nicht mit dem automativen ATMega328p! Ist es jetzt angekommen. Und nein! Ihm sagt nirgendwo, dass er einen automativen ATMega verbaut hat. Das gibt es nur in deiner Fantasie!
-
Thread
Einfacher Fehler in C-Berechnung
kommt 525 heraus: [c] #include <stdio.h> #include <stdint.h> void main(void) { uint16_t LiquLev; uint16_t LiftParamR1Vol = 1300; LiquLev = 10 * (float)(-0.000004 * (LiftParamR1Vol/10) * (LiftParamR1Vol/10) + 0.0405 * LiftParamR1Vol - 0.003); printf("LiquLdev
Werz schrieb im Beitrag #6811844: > LiquLev und LiftParamR1Vol ist vom Typ uint16 schon mal überlegt wofür das 'u' in uint steht?
-
Thread
Attiny85, suche Möglichkeit zur Kommuikation/Daten auslesen
Möchte nochmal das Thema aufgreifen. Mittels [c]uint16_t wert_eep EEMEM[/c] reserviere ich mir Speicher im EEPROM Ich schreibe auf einem Atmega168P den als decimal lautenden Wert: 448. Klappt soweit, wird beim nächsten Programmstart auch wieder als 448
Neo. Der kann dir gleich die Daten als Zahl anzeigen, wenn du ihm sagst du erwartest hier eine uint16_t o.ä.
-
Thread
Der perfekte USB-UART-Konverter
Beitrag #6809857: > Wie wäre es mit dem FT230XS. Hat alle Basics, die man meist so braucht. > TSSOP16, einfach lötbar. 16 Pins sind ihm zu viele - so habe ihn jedenfalls verstanden.
überhaupt nichts. Bauform B. schrieb im Beitrag #6809916: > Mich stören 28 Pins (z.B. FT232R) wenn 16 auch reichen. Der FT230XS hat 16 Pins (SSOP)
-
Thread
Grundfrequenz eines Signals mit AVR messen
einzig die Frage, wieviele Stellen angezeigt werden sollen: 4 - 8, 4xLCD, 5x7-Segment, 6x7-Segment, 2x16 LCD-Modul, ATtiny45, ATtiny2313, ATmegaXXX, Arduino - alles kein Problem. Anton G. schrieb im Beitrag #6808716: > Ich vermute, dass > das bei anderen Signalarten, wie Sinus oder Säge, nicht so einfach
die Frage, wieviele Stellen angezeigt werden sollen: 4 - > 8, 4xLCD, 5x7-Segment, 6x7-Segment, 2x16 LCD-Modul, ATtiny45, > ATtiny2313, ATmegaXXX, Arduino - alles kein Problem. Wenn du jetzt auch noch verrätst, wie das Signal aufbereitet werden muss, um eine Qualität der Zeitmessung zu erreichen
-
Thread
atmega4808 mit microchip ICD3 programmieren/debuggen UPDI interface
Windows Toolchain ergänze ich aus dem Atmel Device Pack folgende Dateien. [code] QUELLE: Atmel.ATmega_DFP.1.7.374.atpack\gcc\dev\atmega4808\avrxmega3\ ZIEL: avr-gcc Ordner\avr\lib\avrxmega3\ Dateien: crt*.o lib*.a REM ------ FAMILIE: atmega ------ HEADER: iom ------------------------ QUELLE
Jan Jans schrieb im Beitrag #6826409: > was unterscheidet denn die "TWI-Register" des ATMEGA4808 von denen der > anderen > angegebenen Controller, z.B. dem ATmega328?
-
Thread
7 Segment Multiplexing Zähler
Hallo an alle! Ich möchte mit meinem ATMega8 vier 7 Segment Displays hochzählen lassen. Also von 0-9999. Leider bin ich bisher darin echt nicht bewandert und möchte, bevor ich selber meinen Code schreibe, zunächst einmal an einem Beispielcode
(0x06), ~(0x5B), ~(0x4F), ~(0x66), ~(0x6D), ~(0x7D), ~(0x07), ~(0x7F), ~(0x6F)}; volatile uint16_t x = 0; volatile uint16_t y = 0; void seven_write(uint16_t i_digit) { PORTD = damn[i_digit]; } int main(void) { DDRB |= (1 << PB0); DDRC |= 0x1E; DDRD |= 0x7F; PORTD = 0x7F
-
Thread
Bitfeld zuweisen: Warum optimiert der Compiler nicht?
Hallo zusammen, ich habe eine 16-Bit-Variable und ein 16 Bit breites Bitfeld. Die Reihenfolge im Bitfeld entspricht der Bit-Reihenfolge unter Berücksichtigung der Endianness. Die Definition des Bitfelds sieht so aus: [c] typedef
in: Eingangs-Vektor * @return normalisierter Ausgangs-Vektor */ static_inline uint_fast16_t input_normalize(uint_fast16_t in) { /* Active-High-Pins markieren */ uint_fast16_t x = 0; if( SWITCH_KEY0_ACTIVE_LEVEL ) x |= SWITCH_KEY0;
-
Thread
230V messen die 1000te
Vor 13 Jahren habe ich einen 380V Netzspannungswächter mit ATmega8 Mikrocontroller gebaut. Ich habe diese Schaltpläne verwendet.
bekommt die Kiste womöglich nicht mit. Da hilft nur Datenblatt lesen, bzw.. kennt jemand einen guten 16Bit SPI-ADC der auch gut zu bekommen ist.. irgendwie ist da sAngebot beim Großen C nicht so riesig.
-
Artikel
Plattformunabhängige Programmierung in C
Dezimal) o (Oktal) u (Dezimal) x (Hex) X (Hex) (u)int8_t PRId8 PRIi8 PRIo8 PRIu8 PRIx8 PRIX8 (u)int16_t PRId16 PRIi16 PRIo16 PRIu16 PRIx16 PRIX16 (u)int32_t PRId32 PRIi32 PRIo32 PRIu32 PRIx32 PRIX32 (u)int64_t PRId64 PRIi64 PRIo64 PRIu64 PRIx64 PRIX64 (u)int_fast8_t PRIdFAST8 PRIiFAST8 PRIoFAST8 PRIuFAST8 PRIxFAST8 PRIXFAST8 (u)int_fast16_t PRIdFAST16 PRIiFAST16 PRIoFAST16 PRIuFAST16 PRIxFAST16 PRIXFAST16 (u)int_fast32_t PRIdFAST32 PRIiFAST32 PRIoFAST32 PRIuFAST32 PRIxFAST32 PRIXFAST32 (u)int_fast64_t PRIdFAST64 PRIiFAST64 PRIoFAST64
-
Thread
Datenübertragung ohne Schnittstellen
kann in etwa hinkommen eine CD hat ja um die 700 MB und das reicht für knapp 60 Minuten Audio bei 16 Bit PCM 44k1. Deine Rechnung ist trotzdem grundlegend falsch. Du kannst nicht die vollen 16 / 24 Bit für die Rechnung verwenden. Wir hatten mal Versuche gemacht das LSB eines PCM Streams zur Datenübertragung
dafür nicht im Kopf hat, kann man es auch gerne vom Blatt tippen. https://newbedev.com/crc-ccitt-16-bit-python-manual-calculation
-
Thread
ATMega8 interner ADC
Hallo alle miteinander! Ich möchte mit meinem ATMega8 Spannungen einlesen und diese dann mittels LED Anzeige ausgeben lassen (also bitweise Darstellung). Hier ist schonmal mein Code: [c] #include <avr/io.h> #include <avr/interrupt.h> volatile uint16_t c = 0; void out (volatile uint16_t value); int main(void) { DDRB |= (1 << PB0); DDRC |= 0x3E; DDRD |= 0xF0; ADMUX = 0x0000; ADCSRA |= (1<<ADFR) | (1<<ADEN) | (1<<ADPS2);
-
Thread
Ds18B20 Zeigt zu höhe Werte
Beitrag #6803110: > Dennis T. schrieb: >> Hier sind meine Fuses E:07, H:D9, L:57 > > Ist auf 16MHZ gestellt Ist er nicht. Mit den Einstellungen bekommt der uC einen Takt von 2MHz. Guck dir mal das CKDIV8-Bit an. https://eleccelerator.com/fusecalc/fusecalc.php?chip=atmega328p
Beitrag #6803031: > Das Timing passt nun auch, allerdings bei > #define F_CPU 2000000L obwohl ich ein 16mhz Quarz habe?
-
Thread
LED dimmen mit Fading oder lieber mit PWM
Falk B. schrieb im Beitrag #6802441: > Wenn dein Tiny keinen 16 Bit Timer > hat, muss man es halt mit einem 8 Bit Timer machen. Auch eine glatte Lüge! Wer es kann, nimmt eine 16/32bit variable als SW counter und einen 8bit HW counter für das inc/dec interval
/ pulse width uint8_t i; // index int8_t incr = 1; // increment uint16_t count; // loop counter uint16_t top = 2000; // loop counter top int main(void) { _PROTECTED_WRITE(CLKCTRL.MCLKCTRLB, (CLKCTRL_PDIV_10X_gc | CLKCTRL_PEN_bm)); // main clock
-
Thread
Coundown Timer
die Bezeichnung der isr nicht mehr stimmt ? ISR (SIG_OUTPUT_COMPARE1A) Ich nutzte erst einen atmega8 und dann einen atmega8a der aktuell jetzt auch verbaut ist.
stimmt ? Das müsste der Compiler reklamieren. Statt ISR (SIG_OUTPUT_COMPARE1A) für den ATmega8A ISR (TIMER1_COMPA_vect) nehmen und neu kompilieren, dann aber gleich für den ATmega8A (letzteres könnte dennoch für beide funktionieren).
-
Thread
Unbenutzte Funktionen beim kompilieren
staticTest.h [c] #pragma once #include <avr/io.h> #include <stddef.h> constexpr uint16_t var {100}; static constexpr uint16_t varStatic {100}; [/c] staticTest2.h [c] #pragma once #include <avr/io.h> #include <stddef.h> constexpr uint16_t var {100}; static constexpr uint16
} [/c] Fehlermeldungen soweit okay, hatte vorhin was falsch gemacht [c] 'constexpr const uint16_t var' previously defined here > staticTest.h 'constexpr const uint16_t varStatic' previously defined here > staticTest.h redefinition of 'constexpr const uint16_t var' > staticTest2