-
Thread
E2PROM Atmel AT24C512 - Was ist da anders?
, ENABLE); if (I2C_WaitForEvent(I2C_EVENT_MASTER_MODE_SELECT) != SUCCESS) return ERROR; // Adressiere das E2PROM I2C_Send7bitAddress(I2C1, E1_WR_ADR, I2C_Direction_Transmitter); if (I2C_WaitForEvent(I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED) != SUCCESS) return ERROR; // Adresse als 2 x 8 Bit senden I2C_SendData(I2C1,upper_addr); if (I2C_WaitForEvent(I2C_EVENT_MASTER_BYTE_TRANSMITTED
-
Thread
Wie macht ihr ein Menü Timeout? Möglichkeiten?
dekrementiert. Wenn Variable==0, wird der Überlaufflag für entspr. Timeout gesetzt und das wars dann. [c] #define CHK_BIT(var,pos) ((var) & (1<<(pos))) #define SET_BIT(var,pos) ((var) |= (1<<(pos))) #define RES_BIT(var,pos) ((var) &= ~(1<<(pos))) // Die oberen 4 bits starten entspr. Counter const
geprüft, wenn > 0 und entspr. Flag gesetzt ist... */ if(CHK_BIT(MyFlag, tstOn) && (TastCnt>0)) { TastCnt--; if(TastCnt<1) { SET_BIT(MyFlag, tstRdy); RES_BIT(MyFlag, tstOn); } } [/c] P.S. Apropos Reset - da wir mit Industriesteuerungen
-
Thread
Datenlogger mit FPGA und MSP432
möchte dem ein shield gestalten, dass je einen TI MSP432 Chip als integrierten FIFO-Buffer und 14 Bit ADC pro Kanal verwendet. Die Kommunikation soll über SPI geschehen. Getriggert wird über das Arty board. Danach werden die einzelnen Bausteine sequenziell ausgelesen. Die Daten werden dann auf der
frage ich mal in die Runde: Kann man mit dem Arty eine parallele Abtastung mit 10 kSps bei 14 bis 16 bit realisieren? Und darüber einen Server darauf laufen lassen? http://www.wiki.xilinx.com/ARTY+FreeRTOS+Web+Server?responseToken=b1c7c94c3adbf99458853e9d038386b7
-
Thread
XT-Bus-Karte zum laufen kriegen
wurde moniert, dass die msvcp90.dll nicht > auffindbar ist. Habe jetzt gelesen, dass die Teil der c++ runtime library ist. Habe jetzt die 32 bit Version (https://www.microsoft.com/de-de/download/details.aspx?id=29) heruntergeladen und hoffe, dass es nun funktioniert...
Gerät der Angriffspunkt. Was auch immer über dort übertragen wird, dürfte mit einem mittelmäßigen 8-Bit-µC problemlos nachgebildet werden können. Solch ein µC könnte dann die relevanten Daten über ein zeitgemäßes Interface (USB, Netzwerk) einem steuernden PC zur Verfügung stellen. Wenn da ein sinnvolles
-
Thread
Atmega328P ADC Problem
PORT C 0 (23) = PORT C 1 (24) = PORT C 2 (25) = PORT C 3 (26) = PORT C 4 (27) = PORT C 5 (28) = PORT D 0 ( 2) = Anschluss 11 am LCD = DB4 PORT D 1 ( 3) = Anschluss 12 am LCD = DB5 PORT D 2 ( 4) =
c]
-
Thread
Kommunikation zwischen 120 Arduinos mit möglichst wenig Verkabelungsaufwand
dann zu jedem Zeitpunkt welches Objekt vorhanden ist und wo es zu finden ist. Mehrere Reader pro µC wären theoretisch möglich, allerdings würde das die Flexibilität etwas einschränken, da die einzelnen Lagerplätze je nach Objekt eine unterschiedliche Größe haben und damit auch einen unterschiedlichen
geben. Wenn die Kabel nicht zu lang werden dann könnte man auch mehr als einen Reader an einen I²C Bus hängen. Voraussetzung: Sie haben verschiedene I²C Addressen, da gibts aber oft einstellbare Bits.
-
Thread
2x Atmega8 SPI Schaltung / Raspberry Pi - Atmega8 SPI Schaltung
led_blink(LONG_TIME); } _delay_ms(500); } } [/c] [c] ###### Slave ###### #ifndef F_CPU #define F_CPU 16000000UL #endif #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include "lcd.h" #define ACK 0x7E
, buffer, 10); _delay_ms(20); } } [/c]
-
Thread
Nested Interrupt - Atmega2560
dann umgekehrt. Clever wäre von den AVR-Entwicklern gewesen, daß jeder Interrupt, der sein Pending-Bit nicht beim Eintritt löscht, dann dafür einfach sein Enable-Bit löscht. Aber soweit haben sie leider nicht gedacht.
////////////////////////////////////////////////////////////////////////////// } } [/c] Makros: [c] #define DDR_LED DDRB #define PORT_LED PORTB #define PIN_LED 7 #define LED_ON PORT_LED |= (1<<PIN_LED) #define LED_OFF PORT_LED &= ~(1<<PIN_LED) [/c] BR/BL = Backright/-left
-
Thread
Suche E2PROM Manager für STM32F10x
= 0xEE; I2C_InitStruct.I2C_Ack = I2C_Ack_Enable; // ACK senden I2C_InitStruct.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit; // 7 Bit Adressierung // I2C einschalten
I2C_CHANNEL, I2C_EVENT_MASTER_MODE_SELECT)); I2C_Send7bitAddress(I2C_CHANNEL, MEM_DEVICE_WRITE_ADDR, I2C_Direction_Transmitter); } while(I2C_WaitForEvent(I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED
-
Thread
wie komme ich an die einzelnen Bits? ( C )
Pin schreiben usw. Eine Funktion die mir das Timing macht habe ich, diese funktioniert auch. [c] write_one(); write_zero(); [/c] Wenn ich jetzt das Byte 0 habe dann entspricht das ganze folgendem [c] write_zero(); //Bit 1 write_zero(); //Bit 2 write_zero(); //Bit 3 write_zero();
per RS232 eine Zahl zwischen 0 und 255 und den rest macht der Code. Der zerlegt das Byte dann in einzelne Bits und macht für jedes Bit dann eine if abfrage wenn eine 0 dann write_zero() und wenn eine 1 dann write_one(). Also, 1. Wie kriege ich aus dem Byte acht Bits? 2. Wie kriege ich zugriff auf
-
Thread
atmaga2560 + Interrupt + lan = abbruch.
1000 reduziert. Wie wäre es, wenn du nur bis 12 Zählst und bei jedem Durchlauf nur einen Sensor abfragst? [c] DeviceAddress sensor[] = { /*1*/ { 0x28, 0xFF, 0x86, 0x2E, 0x74, 0x16, 0x3, 0xAF } /*2*/ { 0x28, 0xFF, 0x5, 0x72, 0x74, 0x16, 0x3, 0xE0 }, ... }; float temp[12]; ...
Küchentimer, nur mit Zählern statt Zahnrädern. http://thumbs4.picclick.com/d/l400/pict/400660001207_/Kr%C3%A4hender-K%C3%BCchentimer-Hahn-Kikeriki-K%C3%BCchenwecker-Eieruhr-Kurzzeitmesser-Kr%C3%A4ht.jpg
-
Thread
Calliope mini: ein Board für die jungen Maker der digitalen Welt
machen. Gab es auch für den C64... Gruß aus Berlin Michael
Schüler entdecken, dass die technische Lösung für das Problem "Farben erkennen" darauf beruht, dass der uC einzelne "Solarzellen" für Rot, Grün, Blau nutzt und für jede Farbe den Helligkeitswert ausliest. Welche Farbe man vor der Linse hat, wird dann anhand von Schwellenwerten entschieden. Im Unterricht
-
Thread
kein Zugriff auf I2C-EEPROM
/write operation select bit. A read operation is initiated if this bit is high and a write operation is initiated if this bit is low. [/c]
Marc V. schrieb im Beitrag #4900943: > Das man nicht über 0x78 abfragen soll, ist nur meine Empfehlung, > verboten ist es nicht. > 0x78 bis 0x7B ist reserviert für 10-bit Adressen. > 0x7C bis 0x7F ist reserviert für zukünftige Erweiterungen. hmmm die Idee kam
-
Thread
RS232 TTL Muliplexer
Atmega hat nur einen UAR. Wie könnte ich die RX/TX so multiplexen das ich damit mehrere Geräte abfragen kann? Ich dachte da an sowas wie einen einfachen 74er Baustein, welcher einen 2- oder 3-Bit Binäreingang hat und ein digitales Eingangssignal auf den jeweiligen Ausgang schaltet. So sollte immer
Ganz traditionell 4x 4051b je rs232/485/422/TTL/lin/i2c/SPI/ICP/ADC. bei 16x mux. Eingang Dwarf, Ausgang Pmod, das erklärt auch die 4x anstelle von 2-3x .
-
Thread
F1-Drehzahlanzeige selber programmieren
Gedankengang ist durchaus richtig und was du suchst sind Datenfelder, Arrays, Tabellen. http://www.c-howto.de/tutorial-arrays-felder-initialisierung.html Alles was du benötigst ist eine Zuweisung Anzahl LEDs zu BIT Muster and den Ausgängen. Statt BIT Weise zu steuern könntest du auch die Ports direkt
[AnzahlLeds]; } [/c] Das lässt sich auch auf 16 BIT erweitern nur musst du dann diese wieder in 2x8 BIT für den jeweiligen Port zerlegen. [c] void BargraphAnsteuerung (uint8_t AnzahlLeds) { const uint16_t BarGraph
-
Thread
Atmega 328p & PCF PCF8574: I2C Adresssuche
(); while(1) { // caught in error loop } } [/c] Des Weiteren einmal mit der Adresse und dem zusätzlichen R/W-Bit per I2C-Lib: [c] #define I2C_BASE_ADDR 0x40 [/c] mit [c] if (i2c_start(I2C_BASE_ADDR + I2C_READ)) {
Sven G. schrieb im Beitrag #4890807: > [c]#define I2C_BASE_ADDR 0x40[/c] Vorher schriebst Du: > sich ein Teilnehmer mit der Adresse 39 (dezimal) auf dem Bus befindet. was: > [c]#define I2C_BASE_ADDR 0x27[/c] einer 7-Bit
-
Thread
Zero Flag und Conditional Branches
AVR hat keinen ADI oder ADDI Befehl (Add immediate). So artet auch dies zu einer Falle: [c] ldi r16, 0xFF subi r16, -1 [/c] Aber folgendes: [c] ldi r16, 0xFF ldi r17, 0x01 add r16, r17 [/c] lässt einen nicht in diese Falle tappen. > Ja, die kleinen Hässlichkeiten
> 10 Befehle vorher gesetzt bzw. zurückgesetzt worden sein. > Unter anderem beeinflussen Jump, Bit Set und Reset, Load Befehle etc. > den Zeroflag überhaupt nicht. Genau dies (mit der Einschränkung, dass ich es unterlassen habe einzelne Befehle zu nennen) habe ich hier geschrieben: "Es gibt
-
Thread
eigene pow - Funktion
32768 ( 2^15) gegeben ist, an deinem Programmbeispiel zu sehen. Das wird erreicht, in dem du 16 Bit für den Vorkommateil und 16 Bit für den Nachkommateil verwendest. Will man 24 Bit Vorkomma- und 8 Bit Nachkomma verwenden, ist die Abweichung deutlich mehr als 1 % !!! (leider). Aaaaaaber, smile
Algorithmen liegen. Wie gesagt, ich werde mir die Funktion aufbewahren. Im "normalen" Gebrauch ist 16 Bit "vorne" und 16 Bit nach dem Komma oft ausreichend, auch Abweichungen bis 1% sind noch hinnehmbar. Mich erstaunt hierbei jedoch, wie "genau" die libm auch mit 32 Bit ist.
-
Thread
if condition schöner schreiben?
fehlen die Klammern um i & 0b11100100 (== bindet stärker als &). Um vom verwendeten Integer-Typ (8 Bit, 16 Bit usw.) unabhängig zu sein, würde man vielleicht besser [c] if((i & ~0b11011) == 0) [/c] oder [c] if((i & ~0x1b) == 0) [/c] oder je nach persönlichem Geschmack auch [
Peter D. schrieb im Beitrag #4885941: > sondern: > [c] > if( PINB & 1<<6 ) > led_off(); > else > led_on(); > [/c] Und hier Frage ich mich nun warum die LED an gehen soll, wenn Bit 6 in PINB nicht gesetzt ist. Warum nicht Bit 7, oder
-
Thread
Programmgeschwindigkeit Arduino
)) [/c] D.h. die Zeile [c] inL1SummePeriode += sq(analogRead(i_stromL1) * 1000 / 1314 - 389); [/c] wird expandiert zu: [c] inL1SummePeriode += ((analogRead(i_stromL1) * 1000 / 1314 -
Was soll das sein ? [c]ANALOG_OFF; //ADC OFF ANALOG_ON;//ADC ON[/c]
-
Thread
Horizon EDA [War: Neues, halbfertiges Elektronik-CAD-Programm]
Ich bekomms es nicht compiliert: In file included from /usr/include/c++/5/bits/stl_algobase.h:64:0, from /usr/include/c++/5/bits/char_traits.h:39, from /usr/include/c++/5/ios:40, from /usr/include/c++/5/ostream:38,
^ In file included from /usr/include/c++/5/string:52:0, from /usr/include/c++/5/bits/locale_classes.h:40, from /usr/include/c++/5/bits/ios_base.h:41, from /usr/include/c++/5/ios:42,
-
Thread
SDR-Dekoder für TFA KlimaLogg Pro/IT+ Temperatursensoren
LTS" kompilieren und lief auch gleich los! :-) Ich möchte damit meinen Pool-Sensor (30.3199.IT) abfragen. Doch leider lieferte dieser gleich erst mal "BAD 33 RSSI 73 (SANITY)". :-( Schuld ist die Abfrage in tfa1.cpp Zeile 70 [c]&& ((rdata[7]&0x70)==0x60[/c] Wenn ich diesen UND-Teile Auskommentiere
.\n"); return 1;[/c] Wenn alle Abfragen fehlschlagen, kommt es zu der Fehlermeldung: "Warning: Unable to locate configuration directory, default config not loaded." (Zeile 235): [c]}else{ fprintf(stderr,
-
Thread
ATmega1280 Blockiert
Wenn tatsächlich das Lock-Bit-Byte auf 0x0C festgenagelt ist, wie behauptet wird, weshalb werden dann 130838 Bytes geschrieben und zurückgelesen, der erste Verifizierungsfehler tritt aber erst bei 0x1F000 auf, was, merkwürdig genug
S. Landolt schrieb im Beitrag #4881690: > Wenn tatsächlich das Lock-Bit-Byte auf 0x0C festgenagelt ist, wie > behauptet wird, weshalb werden dann 130838 Bytes geschrieben und > zurückgelesen, der erste Verifizierungsfehler tritt aber erst bei > 0x1F000 auf, was, merkwürdig
-
Thread
Arduino - Speicheroptimierung?
der Haufen machen soll! Die Ehternet Schnittstelle ist nur für die Webseite/Weboberfläche. Die einzelnen Knoten haben je eine einstellbare CAN-ID und warten auf Befehle (PWM oder Relays-Ausgang) und senden bei Bedarf 8 Analog-Werte, wobei der erste Wert immer die Betriebsspannung (28V) in 8Bit und der
Mit den Variablen Outputs und Inputs (je long) hätte man eigentlich ja alles abgedeckt, eben 32Bits pro. Dann bräuchte man die Input[8] nicht mehr, wären nochmal 9x8 Bytes... Was zwar kein Speicherplatz jedoch weniger traffic bringt, wäre ne Abfrage, ob sich was geändert hat, Out oder Inputs
-
Thread
Abfrage von ca. 130 Tasten
wohl doch recht? c-hater schrieb im Beitrag #4878262: > Kein Problem bei der Abfrage per Matrix. Geht genauso, als hätte man > zwei einzelne Taster. Man muss halt bloß dafür sorgen, dass alle > Mittelkontakte einheitlich
der in der digitalen Welt magischen Grenze von 128 liegt. Dann brauchst du vier (bis 256 Tasten) 8-Bit Schieberegistern. Bei 128 kämest du mit dreien aus. Bei Einzel-IO-Abfrage bräuchtest du für 130 Taster ganze 17 Schieberegister mit 8 Bit.
-
Thread
STM32 Eingang abfragen
Wenn das aber UND-Verknüpft ist, prüf ich dann jedes einzelne Bit UND? Ist das eine Bitweise-Verknüpfung? Was wäre wenn ich sage: [c] int row = GPIOC->IDR & 0xF; [/c] Schreibt der hier dann die Anzahl der Treffer rein? Wenn das eine Bitweise-Verknüpfung
MB schrieb im Beitrag #4873640: > Wenn das aber UND-Verknüpft ist, prüf ich dann jedes einzelne Bit UND? > Ist das eine Bitweise-Verknüpfung? Ja. > [c] > int row = GPIOC->IDR & 0xF; > [/c] Annahme: row ist 16-Bit groß mit dem Inhalt 0000 0000 1000 0100 row wird UND-Verknüpft
-
Thread
China 1-700MHz / 35dB Power-Amp
15dBm Input hat man bereits ein Rechteck am Ausgang. Bei -20dBm am Eingang (bei 100MHz und 200MHz einzeln gemessen) hat die erste Oberwelle einen Abstand von ca. 30dBc und die zweite -42dBc. Unterhalb von 5MHz fällt die Verstärkung um 10dB ab - wahrscheinlich aufgrund des Eingangs-C's und oberhalb
Hallo Tobias, ich hatte gehofft einige C-/Python-Funktionen für die Kommunikation vom PC zum uC als Anregung übernehmen zu können. Danke für Deinen Link zu Deiner Seite. Der Aufbau auf der Lochraster-Platine verursacht bei mir so
-
Thread
Autodesk Eagle 8.0 ist da.
Entwurfsfehlern zu erfinden. Ich sehe das so ähnlich wie die lausige Definition der Integer-Typen bei C. Heutzutage schafft es dort wohl niemand mehr, dort eine Verläßlichkeit (dediziert 8 oder 16 oder 32 oder 64 Bit) in die Sprachdefinition und damit in die Compiler einzuführen. Genau denselben Weg
Oftropic: Hm sehe ich das Richtig das es Eagle 8 nicht als 32bit version gibt, auf der Seite steht bei Linux noch 32bit aber der DL ist für 64bit Systeme.
-
Thread
Atmega8: 16x2 LCD keine Zeichen nach LCD Init
to 4 Bit Mode I2C_LCD_OUT(LCD_FUNCT_SET | LCD_SET_4_BIT); _delay_ms(5); I2C_LCD_CMD(LCD_FUNCT_SET | LCD_NUM_LINES | LCD_5X8_DOTS); I2C_LCD_CMD(LCD_SET_DISPLAY | LCD_DISPLAY_ON | LCD_CURSOR_OFF
maskieren PORTB &= ~(0xF0); // Obere 4 Bit maske löschen PORTB |= LCDData; LCD_Enable(); } void I2C_LCD_CMD (unsigned short int CMD_Data) { PORTB &= ~(1<<LCD_RS); I2C_LCD_OUT(CMD_Data); I2C_LCD_OUT((CMD_Data
-
Thread
STM32 USART: es wird nichts gesendet
das damit zu tun haben? In meinen Sendefunktionen kommt immer zuerst die Abfrage. [c] // wait until data register is empty while(USART_GetFlagStatus(USARTx, USART_FLAG_TXE) == RESET); USART_SendData(USARTx, *s); [/c] edit: .. und die AF für UART muss für beide Pins aktiviert werden. Etwas in dieser Richtung. Bei mir ist es ein STM32F0 mit der UART1 [c]// Beide IO's der AF zuweisen // (Wichtig: nicht zusammenfassen wie bei GPIO_InitStructure.GPIO_Pin sondern einzeln aufrufen!) GPIO_PinAFConfig(GPIOA, GPIO_PinSource9, GPIO_AF_1); GPIO_PinAFConfig
-
Thread
Linux Frage : Verzeichnisse packen
LEERZCHN machen nur Ärger. Genau wie Ümläute. A.S.C.I.I. regelt!
c ======== Compress (bzip2 -c html.tar > html.tar.bz2) : 4.86 s Decompress (bunzip2 html.tar.bz2) : 0.57 s Filesize (html.tar.bz2) : 868.42 KB gzip
-
Thread
iMX6 Board neu entwickeln
irgendwo Bugs drin sind. Mach Dir also ne Liste was da für Dich wichtig ist (z.b. USB-Host, UART, I2C, PWM,...) und teste Punkt für Punkt ob das funktioniert. Hier musst Du Dir auch Gedanken über die Alternate Functions der einzelnen Pins machen und wohin Du welche Pins routest. Daher würde ich mich
kann man halt keine Kundenanforderungen mit bezahlbarem Aufwand umsetzen. Alleine schon "eben mal in C++" ein PDF generieren oder eine HTTP-Abfrage machen wird da schon schnell sehr spannend (ohne Qt).
-
Thread
Code from 328pdef to Attiny45
Mittelwert daraus. Wenn der dann über/unter den Schwellwerten liegt, erfoglt eine Aktion. So fallen einzelne Ausreißer (die es beim ADC immer mal geben kann), nicht so sehr ins Gewicht. ach ja ... X ist wohl auch überflüssig ;-)
Pinout.png If you would like to look inside the Datasheet... http://www.atmel.com/Images/Atmel-2586-AVR-8-bit-Microcontroller-ATtiny25-ATtiny45-ATtiny85_Datasheet.pdf Have fun StromTuner
-
Thread
suche einfachen und guten Temp Sensor
verstehe ist es egal wann und wie viele Sensoren ich auslese. Aber jeder einzelner Sensor benötigt min. 750ms um die aktuelle Temperatur zu digitalisieren. Macht er aber erst wenn er gesagt bekommt miss mal neu und mach ein paar Bit daraus und warte ob jemand diese Bits lesen
Hi Der TSIC hat nur eine 'Genauigkeit' von 0,3°C bei 11bit, laut Datenblatt werden die Werte als 8+3 (=11bit, 8tel Grad) ausgegeben - der DS18B20 hat dagegen 8+4 (=12bit, 16tel Grad). Wenn schon der DS18B20 mit seiner Auflösung von 0,0625K nur bedingt
-
Thread
Bitmanipulation beschleunigen
0x0F; } if (in&0x80){ result.array[3] += 0xF0; } return (result.all); } [/c] Da jeweils nur auf 8 bit zugegriffen wird sollt es recht zügig gehen. Bei einem PIC würde ich im List file noch nachschauen, dass bei den IF Abfragen der Befehl "Is bit set" verwendet wird und nicht
& (1<<bit)) ? (0xfL << (bit << 2)) : 0; return result; } [/c]
-
Thread
SSD1306/1309 Library zum Darstellen von Text auf OLED Displays
> Gleich mal ausprobieren. Für unmodifizierte Displays muß die Adresse 0x78 sein 0x78 = 0x3c << 1 Bit 0 ist für R/W zuständig. Die I²C-Adresse steht in den oberen 7bit.
, #define FONT ssd1306oled_font // set font here, refer font-name at font.h/font.c #define LCD_I2C_ADR (0x78 >> 1) // 7 bit slave-adress without r/w-bit [/c] Als kleines Testprogramm habe ich nur folgende Zeilen: [c] #include <font.h> #include <i2c.h> #include <lcd.h>
-
Thread
Rasterelektronenmikroskop Zeiss DSM 960
Bei mir läuft wav2tiff.py durch: Python 2.7.6 32bit Version auf Windows 8.1 Die folgenden Module mit pip installiert: [c] 29/12/2016 23:49 21,054,566 numpy-1.11.3+mkl-cp27-cp27m-win32.whl 29/12/2016 23:46 841,978 scikits.audiolab
Einschalten da, verschwindet aber sofort wenn ich eine Leiterbahn der Versorgung berühre. Dann wieder einzeln die 47uF draufgetan, Rauschen ist dann dauerhaft da. Geholfen hat ein 100uF Elko an der Stelle wo vorher ein 47uF Kerko saß und zwar der hinter dem LDO (C2). Für mich war das jetzt ziemliche Magie
-
Thread
Frage zur LCD-Initialisierung
nrf_gpio_pin_clear(PIN_RW); writeData(instruction); led_enable(); } void writeChar(char c) { nrf_gpio_pin_set(PIN_RS); nrf_gpio_pin_set(PIN_RW); writeData(c); led_enable(); } void setRangeDirOut(unsigned int start, unsigned int end) { int i; for(i = start; i <= end
MCU B:) Definition der Steuersignale Enable, RS, RWquer C:) Zeitschleifen D:) und für Fortgeschrittene: (I2C Bus), 4-Bit-Modus Anbei ein (bei mir jedenfalls lauffähiges) Assemblerprogramm für die LCD-Initialisierung und Ausgabe von Charakters. In
-
Thread
Weidereinstig Mikrocontroller - welche Familie, welche Tools ?
ist das aber nicht. Daher: Probiers aus. Meiner Meinung nach sind die technischen Daten der µC fast irrelevant, kannst eh fast mit allem alles lösen. Das ist Hobby, das muss Spass machen. Was bringt dir der beste µC, wenn das Arbeiten damit keinen Spass bringt.
nicht so schlecht. Mir gefiel damals das durchdachtere Design besser (machte irgendwie einen echten 32 Bit-Ansatz neu entwickelter Chips und kein aufgebohrtes 16 Bit Design bei den ersten STM32). Aktuell arbeite ich mich gerade in die steinalten STM32F103C8T6 ein. Warum? Der Chinamann steckt sie mir für
-
Thread
SSD gebraucht kaufen - keine gute Idee ?
CrystalDiskInfo-Portable_47445414.html Es gibt SLC, MLC und TLC Speicher. SLC (speichert 1 bit pro Speicherzelle) schafft 100.000 Lese/Schreibzyklen MLC (speichert 2 bit pro Speicherzelle) schafft 10.000 Lese/Schreibzyklen TLC (speichert 3 bit pro Speicherzelle) schafft 1.000 Lese/Schreibzyklen Um zwei Bit in einer Speicherzelle speichern zu können muss man die Speicherzelle nicht einfach nur umschalten, sondern man macht den MosFET etwas mehr oder weniger leitend. Um 3 Bit speichern zu können braucht
-
Thread
Ausrüstung für Mikrocontroller
Mikrokontroller machen, > und die Zahl auf einem LCD ausgeben. Kaomp_A_ratoren brauchst Du beim µC nicht. Wenn der ganze Kram die selbe Betriebsspannung (5V) hat, reicht ein AnalogRead am Arduino. Danach ein paar if-Abfragen in der Art "wenn Wert zwischen 150 und 230 zeige eine Zwei / wenn 280 bis
auf diese Weise zu laden. Ging einwandfrei. Ich bin übrigens der Ansicht, dass der 1284P der 8-bit Default uC für eine neue Generation von Arduinos sein sollte. Das mechanische Design des UNO ist suboptimal(Z.B. Lochdimensionen für die Befestigung). Allerdings möchte ich das jetzt aber nicht spezifisch
-
Thread
Unklarheiten bei einem C Programm
bloß ein einzelnes Bit löschen, löscht statt dessen aber alle. Ansonsten der selbe irreführende Register- / Bitnamenmix wie oben. */ PORTC = (0<<DDC0); } [/c] Grundsätzlich ist
So lasse ich mir das gefallen, da sieht man, welche Bits gesetzt sind, und kann es schnell ändern. Ok, wenn es ein Byte ist, werden 3 weitere Bits kommentarlos auf 0 gesetzt. [c] A = (1<<AX5) | (0<<AX4) | (1<<AX3) | (1<<AX2) | (0<<AX1); [/c] Aber bei
-
Thread
128 Bit Risc
Anfang geschrieben hat, fehlt den > SIMD-Befehlen das Carry-Flag, d.h. man kann sich aus einer > 64Bit-Addition keine 256Bit Addition zusammenbasteln. Man kann den 64 bit overflow bei addition ohne carry bit erkennen, wenn (unsigned) vpaddq a,b,c < max(a,b) ist. (add c,2^64 if c below a or b). Wenn
Anfang geschrieben hat, fehlt den >> SIMD-Befehlen das Carry-Flag, d.h. man kann sich aus einer >> 64Bit-Addition keine 256Bit Addition zusammenbasteln. > > Man kann den 64 bit overflow bei addition ohne carry bit erkennen, wenn > (unsigned) vpaddq a,b,c < max(a,b) ist. (add c,2^64 if c below a or
-
Thread
DS18B20 gibt keine Daten her
Datentypen. DEine Variablen die die rückgegebenen Bytes des Scratchpad aufnehmen sollen hast Du als [c]unsigned short //(16 Bit)[/c] definiert. Bytes werden aber eigentlich als [c]unsigned char //(8Bit)[/c] definiert. Ich schreibe die 9 Byte des Scratchpad in ein char-Array. Für die Temperatur werte
nicht nur in der Reset-Abfrage, sondern auch in der read: if (Port_one_wire_bus != 0) Wenn da noch andere Bits high sind, ist das immer true.
-
Thread
Frage zur Länge i2c auf Platine.
sind u.a. 7 32polig Messerleisten aufgelötet, in diese werden dann Einzelplatinen mit jeweils einem i2c 16bit-Portexpander MCP23017 aufgesteckt werden wird. Ebenso wird ein 4 Zeiliges LCD mittels Flachbandkabel, ca. 60cm, mit dem i2c verbunden werden. Meine Frage nun zum i2c. Der Bus auf Hauptplatine
Signale in Augenschein zu nehmen und mögliche Probleme zu erkennen, achte auch auf die Pegel der ACK-bits eines jeden einzelnen Teilnehmers, achte darauf dass Low wirklich ausreichend Low ist, bei längeren Strecken miss auch mal am anderen Ende des Kabels.
-
Thread
Codeeingabe mit wenig Leitungen für SPS
normale Matrixtastatur benötigt ja mindestens 4 > digitale Eingänge und 3 Ausgänge an der SPS. Bei einzelnen > Tasten wären es noch mehr (10 Eingänge). Nö. Wenn Du die Tasten multiplex abfragst, kommst Du mit 4 Ausgängen und einem Eingang für 16 Tasten aus. Hühnerfutter bzw. ein, zwei Logik-ICs
eingefleischte PIC-Fangemeinde, auch da findet man viel Dokumentation. Das sind auch alles feine µC und im Grunde genauso einfach einzusetzen, wenn nicht einfacher (wie manche behaupten). Als nächstes kommt die STM32-Fangemeinde, das sind kleine 32Bit- Controller, die in diesem Forum auch gerne
-
Thread
ESP8266 - Software I2C - Dauernd Resets
[c] uint8_t bitCycle; for(bitCycle = 7; bitCycle >= 0; bitCycle--){[/c] Ein uint8_t ist _immer_ >=0.
#p59024 [c] void transferByte(uint8_t byte){ uint8_t bitCycle; for(bitCycle = 7; bitCycle >= 0; bitCycle++){ uint8_t currentBit = (byte >> bitCycle) & 1; if(currentBit == 1) setHigh(SDA