-
Thread
ringpuffer... ich verstehe es irgendwie nicht...
Oder einfach mal umstellen: Uart_RX_Complete: push temp1 push temp2 push temp3 in Save_SREG, SREG sbr Flags, 1<<USART_RX in temp1, udr st x+,temp1 inc rs_puffer
Aber man könnte es auch noch mittels AND auf eine 2-er-Potenz verkleinern (für andere Zwecke): Z. B. für einen Buffer mit 64 Byte: URXCint: ldi xh, high(rx_buff) ;set high address byte in ia0, UDR st x+
-
Thread
MCP2515 an Arduino mehr als 8 Frames senden
0x40 /* (1<<6) Bit 6 */ #define MCP_RXB_RX_ANY 0x60 #define MCP_RXB_RX_EXT 0x40 #define MCP_RXB_RX_STD 0x20 #define MCP_RXB_RX_STDEXT 0x00 #define MCP_RXB_RX_MASK 0x60 #define MCP_RXB_BUKT_MASK (1<<2) /* ** Bits
define MCP_RXM1EID8 0x26 #define MCP_RXM1EID0 0x27 #define MCP_CNF3 0x28 #define MCP_CNF2 0x29 #define MCP_CNF1 0x2A #define MCP_CANINTE 0x2B #define MCP_CANINTF 0x2C #define MCP_EFLG 0x2D #define MCP_TXB0CTRL 0x30 #define MCP_TXB1CTRL 0x40 #define
-
Thread
Telit GM862-Quad Problem
= power off // I/O port initialization P1M1 = 0x2F; // #00101111B; 0-QUASI BIDIR| 0-PUSH PULL | 1-INPUT ONLY | 1-OPEN DRAIN P1M2 = 0x0F; // #00001111B; 0/ | 1/ | 0/ | 1/ P1 = 0xD0; // P1 = b11010000
= b11010000; LED_R P1.7=1->off, LED_W P1.6=1->off, // MDM_SHDN P1.4=1->off, MDM_RST P1.3=0->on, MDM_PWR P1.2=0->on P2M1 = 0x3C; // #00111100B; 0-QUASI BIDIR| 0-PUSH
-
Thread
Messung von Widerstandswerten bei 4 Widerständen in Ringanordnung
Lege 1V an R1. Dann kannst Du an R2, R3 und R4 die Spannung messen und kennst deren Verhältnisse. Miss genauso z.B. R1,R2 und R3. Dann hast Du alle Verhältnisse, also R2=a*R1, R3=b*R1 und R4=c*R1. Es gilt dann: * d = a+b+c *
verwendete Funktion her? [code] Parallelschaltung Ra // Rb -> R = Ra * Rb / (Ra + Rb) Ra = R1, Rb = R2 + R3 + R4 = R1 + R2 + R3 + R4 - R1 = sum(R) - R1 Mx (x=1,2,3,4) ist der gemessene Widerstand, z.B. M1 = (R1 * (R2 + R3 + R4)) / (R1 + R2 + R3 + R4) [/code] oder allgemein: [code] Mx = Rx * (sum
-
Thread
Programm meckert (bei den setzten von Ein-& Ausgängen)
hat mit AVR Controllern nix zu tun. Besser wäre, wenn Du ein AVR Entwicklungsboard kaufst.... z.B. das von Pollin: https://www.pollin.de/p/atmel-evaluations-board-v2-0-1-fertigmodul-810074 Und dazu einen oder besser zwei ATMEGA328P Controller im DIL Gehäuse. Dann passt Dein angefangener
nicht D du musst schon ins Datenblatt schauen welche D oder A Eingänge auf welchen Port gehen B, C, D ? chris70469 schrieb im Beitrag #5521566: > und das Nano V3.0 ATmega328P Board da hilft immer folgendes Bild https://i2.wp.com/marcusjenkins.com/wp-content/uploads/2014/06/ARDUINO_V2.png
-
Thread
8Bit Variablen auf einem 32Bit Mikrocontroller
Falk B. schrieb im Beitrag #4526561: > Nö, Falk B. schrieb im Beitrag #4526561: > Oder gilt das nur für Structs? Erst einmal NEIN sagen, um dann zu fragen, wie es tatsächlich ist. Komischer Vogel!
du kannst dir die Byteorder z.B auf einem lcd anzeigen lassen: u32 owx_rx_buffer[1]={0x11223344}; u8 *owx_rx8=(owx_rx_buffer); lcd_int(owx_rx8[0]); lcd_int(owx_rx8[1]); lcd_int(owx_rx8[2]); lcd_int(owx_rx8[3]);
-
Thread
Suche schnellen µC
Damit's auch sicher wird ;-) Cortex-R4F in Form der TMS570 von TI (die hätten eine FPU, 1-2MiB Flash, 128 -160 kiB SRAM beide mit ECC, 160 MHz): http://focus.ti.com/docs/toolsw/folders/print/tmdx570ls20susb.html http://www.ti.com/ww/en/mcu/tms570/index.shtml Ansonsten würde ich aber auch
Falls Du noch in der Evaluation steckst habe ich auch noch einen Kandidaten: Renesas RX600 Serie: http://www.renesas.com/products/mpumcu/rx/rx600/rx600_landing.jsp Die sollten Deine gestellten Anforderungen erfüllen. FPU vorhanden, gehen bis 100MHz, bis 2MB flash, 128kB RAM, ... Als
-
Thread
Soehnle 3700 Terminal (Waage) uart mod.
Erkenntnisse brinden, oder ein Durchklingeln mit einem Durchgangsprüfer. Der µC ist ein S3F8S6B von Zilog und hat zwei UARTs. Tx/Rx von Uart0 liegen an Pins 59 und 60, Tx/Rx von Uart1 liegen an Pins 57 und 58. (Pinbelegung siehe Fig. 1-3 auf Seite 1-8 bzw. 27 im Datenblatt*) Allerdings werden
> Der µC ist ein S3F8S6B von Zilog und hat zwei UARTs. > > Tx/Rx von Uart0 liegen an Pins 59 und 60, Tx/Rx von Uart1 liegen an Pins > 57 und 58. (Pinbelegung siehe Fig. 1-3 auf Seite 1-8 bzw. 27 im > Datenblatt*) Danke
-
Thread
STM32 USART: es wird nichts gesendet
InitializeUSART() { USART_InitTypeDef usartConfig; RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE); USART_Cmd(USART2, ENABLE); usartConfig.USART_BaudRate = 9600; usartConfig.USART_WordLength = USART_WordLength_8b
Reference Manual angesehen? B3 und B4 sind debug pins. Könnte hier auch ein Problem sein. Da muss man den AFR explizit vorher zurück setzen. Keine Ahnung ob das deine HAL macht. Hast du denn nun auch RX als alternate function
-
Thread
Wunschfarbe über eine RGB-LED und PWM erzeugen
wissenschaftlich) mir durch Messung solch eine Tabelle zu erstellen: Farbort (x,y) | i_R | i_G | i_B | (x1,y1) | 25 | 0 | 0 | (x1,y2) | 13 | 20 | 56 | ... | ... | ... | ... | (xn,yn) | 22 | 7 | 0 | damit würde ich den Zusammenhang zwischen den Strömen
entnehmen. Ich mache mir hier mal das Leben noch ein bischen einfacher, indem ich statt dem Viereck z.B. den Mittelpunkt nehme. Die roten LED chips betrachte ich im folgenden also so, als hätten sie Rx = 0.6938 und Ry = 0.3013 (Mittelwert der vier Eckpunkte), bei Grün und Blau dann natürlich für die
-
Thread
VHDL: Auswerten variabler Zahl von Signalen in for-Schleife
[vhdl] send_flag <= '1' when (rx_packet_rdy_s = (rx_packet_rdy_s'range => '1')) else '0'; [/vhdl]
"111". Stimmt, Denkfehler von mir! Hab gemeint, wenn SPI_NUMBER = 4. Wenn das hier geht > (rx_packet_rdy_s'range => '1') dann soll theoretisch auch z.B. so was gehen (5 => '1'), ergibt dann "11111", oder?
-
Thread
=== GCC v15 ===
00001b7e 00001c32 2**0 CONTENTS, ALLOC, LOAD, READONLY, DATA 1 .text 00001b7e 00000000 00000000 000000b4 2**1 CONTENTS, ALLOC, LOAD, READONLY, CODE
> rxData{mRxMetaData.mRxData}; bf0: fc 01 movw r30, r24 bf2: a3 85 ldd r26, Z+11 ; 0x0b // ab hier alles wieder gleich bf4: b4 85 ldd r27, Z+12 ; 0x0c .
-
Thread
RS485 - viele Teilnehmer - hohe Geschwindigkeit
Daten versendet werden gibst du diese von Transceiver 2 auf Transceiver 1. Vereinfacht kann man direkt RX und TX der beiden Transceiver kreuzen und im Sendefall diese Verbindung auftrennen und die RX und TX LEitung des Controllers an beide Transceiver
stm32snippetsf0.html). Von der Konfiguration her ist CAN schon ein bisschen komplizierter als SPI oder I2C aber immer noch viel einfacher als z.B. USB. Der Code ist schon sehr gut kommentiert aber wie immer hilft ein Blick in das Reference-Manual (in diesem Fall dem des F072).
-
Thread
Uart String empfangen Interrupt
(p, rec); } /**************************/ void UART2_IRQHandler( void ) { (void)UART2_S1; rx_echo_string( UART2 ); } [/c] Gruß Marco
must be a power of 2 #endif #if ESP_RX_BUFFER_SIZE < 2 #error ESP_RX_BUFFER_SIZE is too small, It must be larger then 1. #elif ((ESP_RX_BUFFER_SIZE & (ESP_RX_BUFFER_SIZE-1)) != 0 ) #error ESP_RX_BUFFER_SIZE must be
-
Thread
TTL multiplex schaltung
I I R_R I RX--------->--I---TX1 ->--I---TX2 ->--I---TX3
I I R_R I RX--------I->-----TX1 I->-----TX2 I->-----TX3
-
Thread
Verständnisfrage Interrupt UART
winavr.scienceprog.com/avr-gcc-tutorial/interrupt-driven-avr-usart-communication.html würde der Interrupthandler z.B. so aussehen volatile char rx_bytes; ISR(USART_RXC_vect) { switch (rx_bytes) { case 2: // Zeichen empfangen ohne dass Userprogramm die vorhergehenden // verarbeitet hat
(rx_bytes == 2) { // 2 Bytes empfangen, jetzt auslesen // Während Zugriff auf SCA_H und SCA_L und rx_buffer INTs sperren! // Hier Brute-Force-Lösung. Kann man mit SREG schöner lösen
-
Thread
String einlesen und bearbeiten
Du kannst jetzt die strncmp-Funktion nehmen, um den Teilstring "+CCLK: " zu identifizieren. z.B. so: if(!strncmp(string,"+CCLK: ",7)) { uint_8 i=9; // Zeitstring gelesen. help[0] = string[i++]; help[1] = string[i++]; help[2] = 0; // jetzt ist das Jahr im help zu fuss
// write address 0 i2c_write(wd); // Wochentag i2c_write(hex2bcd(day)); // Tag i2c_write(hex2bcd(month)); // Monat i2c_write(hex2bcd(year)); // Jahr i2c_stop(); } }
-
Thread
RS232 --> TTL Wandler Unterschied
verlinkten Seiten gibt es jeweils einen Link auf eine Beschreibung. Und in der Beschreibung auf Seite 2 bzw. 4 siehst du im Schaltplan, dass der eine nur TX und RX umsetzt, der andere auch RTS und CTS.
Joachim B. schrieb im Beitrag #6496467: > TTL meint eigentlich 5V wurde aber schon mißbräuchlich für 3,3V Pegel > genutzt. Nö. TTL heißt, alles unter 0.8 V ist low, alles über 2.4 V ist high. So war
-
Thread
Funkübertragung über uC
als PWM-Port setzen TCCR1B |= _BV(COM0B1); OCR0B = 0; // Ausgänge DDRC |= _BV(PC0) | _BV(PC1) | _BV(PC2) | _BV(PC3); // Alle Signallampen als Ausgänge deklariert PORTC &= ~(_BV(PC0) & _BV(PC1) & _BV(PC2) &
Baudrate bekommst Du vielleicht aus dem Datenblatt heraus: http://jp.ic-on-line. cn /IOL/datasheet/rx2-433-14-5v_4181122.pdf (entferne die Leerzeichen vor und nach dem "cn".)
-
Thread
MSP430 über UART Daten senden
Zeichen. Es sollen aber auch mehrere verschiedene 16Bit breite Messwerte übertragen werden. (z. B. Temperatur 1, Temperatur 2 usw.) Man könnte vor dem Senden den Messwert in ein oberes und unteres Byte zerlegen und dann diese zwei Bytes senden. Das Zerlegen und Zusammenfügen ist nicht das Problem
Realisierungsansatz hat zwei große Schwachstellen: 1.) Interruptroutinene sollten niemals Delayroutinen z.B. __delay_cycles enthalten 2.) Interruptroutinene sollten niemals Schleifenkonstrukte enthalten. Schleifen sollten außerhalb des Timerinterrupts geschlossen werden, dass heisst ein Iterationsschritt
-
Thread
uC für 0,20€ CH552 / CH554 von WCH Billig Micro mit USB Funktion, Chip vorstellung
/ Set the DMA // // setup ep2 in single buffer mode with auto toggle // UEP2_3_MOD = UEP2_3_MOD & ~bUEP2_BUF_MOD | bUEP2_TX_EN; // Enable EP2 UEP2_CTRL = bUEP_AUTO_TOG | UEP_T_RES_NAK; // autotoggle NAK on recieve UEP2_DMA = (uint16_t)EP2_Buffer; // set the DMA // // disable remaining eps // UEP2_3_MOD &= ~(bUEP3_RX_EN | bUEP3_TX_EN); // EP 3 is disabled
-
Thread
Ein paar Fragen zu RS485 - Master / Slave Anwendung
Slaves-TX brauchen dort genauso Tri-State-Treiber, wie oben schon erwähnt. Nur der Master-TX und die Slave RX könnten mit einfachernen Treibern aufgebaut werden. Bringt aber insgesamt nicht so die Vorteile. 2-Draht RS485 hat halt 2 Drähte weniger, was Du beim Verdrahten der vielen Einheiten am Bus zu schätzen
Udr_dummybyte = Udr Else Incr Rx_pointer If Rx_pointer > 2 Then Set Led_rot Rx_data(rx_pointer) = Udr If Rx_data(rx_pointer) = 123 Or Rx_data(rx_pointer)
-
Thread
Wahl vom richtigen Mikrokontroller
Extended Frame Format". Hey Jungs, Datenblatt: http://skpang.co.uk/catalog/images/raspberrypi/pi_2/PICAN2DUODSB.pdf Auszug: • CAN v2.0B at 1 Mb/s • High speed SPI Interface (10 MHz) • Standard and extended data and remote frames • ... • SocketCAN driver, appears as can0 and can1 to application
LPC1800 Infineon u.a XMC4500 Renesas (wird etwas aufwendig > 1000 Controller(-Varianten) mit >= 2x CAN): Auswahl: RX630, RX631, RX71M, RX63N, RX64M, RX65N und RX651 (letzten beiden noch nicht verfügbar) Hinzukämen sehr, sehr viele Controller mit 1x CAN und 1x SPI (da dann mit zusätzlichem CAN
-
Thread
Zwei Relais abhängig von Spannung schalten
Joe F. schrieb im Beitrag #5489416: > Mit 2-3 (Analog-)Ausgängen kann man aber auch einfache digitale > Protokolle realisieren, wie z.B. SPI. Im Extremfall ginge auch so etwas > wie "1-wire" (1 Ausgang). Na viel Spaß dabei, soetwas in der
Luft und Kriechstrecken nach VDE da zu beachten und sauber einzuhalten. Sehr einfach geht das z.B. mit Finder Relais mit Sockel zum Aufschnappen auf die Hutschiene. Kosten liegen dann vielleicht bei(+/-): 10 € µC-Board - 2 € Schutzbeschaltung Analogeingang, 2x 10 € Ausgangsrelais, 4 € Steckernetzteil
-
Thread
Programm von mega32 auf mega328P convertieren
(1000UL))) volatile struct _sTimer timer; void initTimer(void) { #if _TYPE_1003_ TCCR2A = (_BV(WGM21)|_BV(WGM20)); TCCR2B = (_BVC(FOC2A)|_BV(WGM22)|_BV(CS22)|_BV(CS21)|_BV(CS20)); OCR2A = OVERFLOW_TC0; TIMSK2 |= _BV(OCIE2A); #else TCCR2 = (_BVC(FOC2)|_BV(WGM21)|_BVC
Änderung berücksichtigen, als Beispiel: [code] void initTimer(void) { #if _TYPE_1003_ TCCR2A = (_BV(WGM21)|_BV(WGM20)); TCCR2B = (_BVC(FOC2A)|_BV(WGM22)|_BV(CS22)|_BV(CS21)|_BV(CS20)); OCR2A = OVERFLOW_TC0; TIMSK2 |= _BV(OCIE2A); #else TCCR2 = (_BVC(FOC2)|_BV(WGM21)|_BVC
-
Thread
Nochmals Frage zu UART
MC_AVR schrieb: > d.h. ich muss an jedem Ende der while(1) Schleife das rx_flag auf 0 > setzen, so das quasi neue Daten ankommen können. Nein. Du musst das rx_flag am Ende von parser() auf 0 zurück setzen. Denn dann wurde ja der übertragene String bearbeitet.
nochmal alles umdrehen. Du müsstest dann mit einem Timer einen Zeittakt in einer ISR erzeugen Die 2ms sind, denk ich verschmerzbar, zumal ja die UART sowieso unabhängig weiterläuft und du gar nicht so schnell das Stopp-Kommando schicken kannst, als das dir die 2ms weh tun. > Funktion: send file
-
Thread
AVR atmega324p UART
(long)1000000))+1)/2-1)&0xff;//Baudrate setzten UCSR0B = (1<<RXEN0)|(1<<TXEN0); //RxD0 & TxD0 aktivieren UCSR0C = (1<<UCSZ00)|(1<<UCSZ01); //8 Bit Datentransfer UCSR0A |= (1<<U2X0
//Setzt Register UCSR0B auf Null UBRR0H = ((((((long)MCU_CLOCK)*2)/(8*((long)1000000))+1)/2-1)>>8)&0xff;//Baudrate setzten UBRR0L = (((((long)MCU_CLOCK)*2)/(8*((long)1000000))+1)/2-1)&0xff;//Baudrate setzten UCSR0B
-
Thread
suche nach geeignetem Optokoppler
Alternativ (und falls es eine längere Strecke zwischen den beiden ist) gehen auch je 2 Inverter (RX/TX vom PIC, RX/TX vom ESP). Dann ist der Ruhepegel 0V (UART = Ruhepegel 1) und man man kann das Signal dazwischen auch einfach mitlesen. Wirkglich gebraucht wird es nur vom PIC zum
verwenden). Und meine Software würde so aussehen: 1. UART im PIC abschalten 2. TC und RX Pins im PIC auf Ausgang schalten 3. Aan beiden Pins low ausgeben 3. Versorgung des ESP in der Highside abschalten
-
Thread
Steuerungsprojekt mit bidirektionaler Kommunikation
liegen auf der Hand. @Matthias >(Sind glaub bis zu 24-Bit - Also viel Spielraum ;-)) Bei CAN 2.0B sind es sogar 29 Bit.
wird. Erstens kann eine Ethernetverbindung auch eine Point-To-Point-Verbindung (also zwische genau 2 Modulen) sein und zweitens laeuft das Ethernet, wie wir es tagtaeglich benutzen, mitnichten ueber einen Bus: Wenn Module A, B, C und D an einem Switch haengen, dann kann A mit B kommunizieren ohne
-
Thread
UART - Led - Blinkschaltung?
funktionierende KSQ felt ein sinnvoller Bezugspunkt für die Basis. Üblicherweise sind da dann mindestens 2 Dioden zwischen E und B.
Lothar M. schrieb im Beitrag #7697749: > (...) Üblicherweise sind da dann mindestens 2 > Dioden zwischen E und B. Oder der Portpin eines Microcontrollers. Das wäre dann eine Standard-Schaltung: High-Pegel sind 3,3 V, minus Vbe gibt 2,6 V am Emitter. Geteilt durch den Wert des Emitterwiderstandes
-
Thread
CAN OPEN CiA Draft Standard 301
In Deiner Aufzeichnung sind wahrscheinlich folgende Einträge PDOS: [code] 204 20165.7 Rx 0181 8 21 00 00 00 00 00 02 00 205 20166.2 Rx 0281 8 00 00 00 00 C0 4E 00 00 206 20166.7 Rx 0381 7 00 00 10 3B 00 00 01 207 20167.2 Rx 0481 8 9F 48 00 00 08 01 00 4C [/code] Die COB-IDs sind
Rx 0481 8 00 00 00 00 08 01 00 4B 551) 35350.2 Rx 0701 1 05 552) 35362.1 Rx 0601 8 40 2A 20 03 00 00 00 00 // 202A Min Cell Volt 553) 35370.6
-
Thread
STM32: mit DMA Daten empfangen
are stored void DMA_UART3_receive_values() { // DMA1 Channel 3 - UART3 RX DMA_Cmd(DMA1_Channel3, DISABLE); // USART3_TX on Channel 2 DMA_InitTypeDef DMA_InitStruct; //DMA_StructInit(&DMA_InitStruct); //DMA_InitStruct.DMA_Channel
NVIC_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure; /* Configure the Priority Group to 2 bits */ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); /* Enable UART RX DMA Interrupt */ NVIC_InitStructure.NVIC_IRQChannel = DMA1_Channel3_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority
-
Thread
Sind das 19375 baud, 8 bit, parity, OHNE Stopbit ?
loop: [code] void loop() { for (int i=0; i<30; i++) digitalWrite(LED_BUILTIN, (millis()/500)%2); } [/code] Und hier der komplette Testcode: [code] //#define SERIAL_RX_BUFFER_SIZE 2 //#define SERIAL_TX_BUFFER_SIZE 1 #define BAUD_DISPLAY 19200 #define TX 1 // pin 1 is TX on Arduino
) return; for (iAvail;iAvail>0;iAvail--) { uint8_t c = Serial.read(); if ((c & 0b00001111) == 0b00000011) { //bSend = true; if (c & 0b00010000) iAssist = 2; else if (c & 0b00100000) iAssist = 3; else if (c & 0b01000000) iAssist = 1; else
-
Thread
STM32 USART Strings verarbeiten
/* Read one byte from the receive data register */ bufferRx_2[RxCounter_2++] = USART_ReceiveData(USART2); // USART_SendData(USART1, bufferRx[RxCounter-1]);//echo van elk karakter apart if((bufferRx_2[RxCounter_2-1]=='\r')|(bufferRx_2[RxCounter_2-1]=='\n')){ strcpy(receiveRx_2, bufferRx_2); receiveRx_2[RxCounter_2-1]='\0'; RxCounter_2=0;printRx_2=1; } if(RxCounter_2 > 250) {
-
Thread
Nochmal SW UART
mega8 läuft mit 16MHz und 19200bd sw uart, verwendet werden die 8 bit timer, timer 0 für tx, timer 2 und int0 für rx, port-pin seitigt liegt rx auf int0 (pd2) und tx auf int1 (pd3) ). gebe die auf rx empfangenen zeichen einfach wieder auf tx aus, bis auf das ich 0xd und 0xa immer zu 0xd und 0xa mache
stimmt nicht mehr. Vollduplex solltest du besser auch komplett streichen. Denk mal drüber nach: RX und TX laufen mit den gleichen Zeiten. Du sendest im Beispiel alles was du empfängst als Echo zurück. Und dann kommst du auf die grandiose Idee für z.B. 0x0D *ZWEI* Zeichen zurückzusenden. Da wird
-
Thread
Wie 4 gleiche 2MOhm Widerstände selektieren?
zweimal aufbaut, und deshalb auf die Kosten achtet Nächste Woche verraten wir ihm dann das der 358B seit 2 Jahren von TI auf dem Markt ist, weniger als der 358 kostet (bei Großabnahme), und ca. Ein Zehntel biasstrom hat Immer das gleiche hier.
sich ganz gut. Bei C0G/NP0 bin ich mir nicht ganz sicher. In Datenblätter von SHC-Schaltkreisen (z.B. LF398 -> hold capacitor) finden hierzu gute Tipps. B) zwischen 2 Messungen würde ich gefühlsmäßig einen Entladezyklus einfügen, bei dem C1 allpolig auf GND gelegt wird und damit auf 0 entladen wird
-
Thread
GCC Optimierung killt Funktion
Wert abholen... 080037AA ldr r0, [pc, #16] ; (0x80037bc <SPI_SendByte+88>) 080037AC bl 0x8001b1c <SPI_I2S_ReceiveData> 080037B0 mov r3, r0 080037B2 uxtb r3, r3 (143) } 080037B4 mov r0, r3 080037B6 adds r7, #8 080037B8 mov sp, r7 080037BA pop {r7, pc} 080037BC adds r0, #0
(SPI1, SPI_I2S_FLAG_RXNE)); // Warte bis Byte drin und RXNE = 1 val = SPI_I2S_ReceiveData(SPI1); // Hole RX Wert ab (Clearing RXNE) while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY));
-
Thread
[AVR] FM-Transmitter für 1,50EUR --> Ansteuerung?
vor dem Disassemblieren mal ansehen sollen ... [pre] :1000000000000101020203030404050506060707B8 :10001000080809090A0A0B0B0C0C0D0D0E0E0F0F28 :100020001010111112121313141415151616171798 :10003000181819191A1A1B1B1C1C1D1D1E1E1F1F08 :100040002020212122222323242425252626272778 :10005000282829292A2A2B2B2C2C2D2D2E2E2F2FE8
88.6Mhz: > adress data adress data > /0X0A /0X3F /0X0B /0X2A WORD = 256*2A + 3F = 10815 Frequenz = (10815·67+143)·1/818·1/10 = 886·1/10 = 88,6 [MHz]
-
Thread
Sende/Empfangsvorgang mittels nur 1St. µC
dass es etwas wie RS422 oder so ist. Ist es aber wohl nicht... Also sonst... hat jedes Modul TX und RX. Damit das Event von Alternative 1 funktioniert, sehe ich folgende Situation. A, B, C haben jeder TX und RX. A.TX ist verbunden mit B. und C.RX. Nun wird A getastet und schickt einen Befehl raus, daran
Wolle G. schrieb im Beitrag #6881159: > Falk B. schrieb: >> Bei dem Programm sollte mindestens die Taste P2.1 die grüne LED >> umschalten. P2.0 sollte die Anfrage per UART senden und die Antwort >> empfangen. > 1. Testbericht: > Die Taste P2.1
-
Thread
ATTiny2313A UART Receive Probleme
nix (soll auch so ein): [c] uart_getc(); //hier kommt er nicht raus, da RXC == '0' uart_putc('b'); [/c] Wenn ich hingegen nur [c] uart_putc('b'); [/c] im Code habe, sendet er mir wie gewollt mein 'b'. Wenn RX deaktiviert ist, ist auch RXC '0', sobald ich aber RX aktiviere ist RXC dauerhaft
Ich hätte noch eine kleine Frage :-) Ihr dürft gerne lachen, aber braucht der RX des µC einen Pullup auf 5V? Nach ein paar Messungen und rumspielen ist mir aufgefallen das mein RX auf 2,4V hängt und nicht auf 5V wie es sein sollte. Jetzt habe ich einen Pullup auf 5V drangehängt
-
Thread
Chinesische USB/nRF24L01 Adpapter
RF_SETUP 0x06 #define STATUS 0x07 #define OBSERVE_TX 0x08 #define CD 0x09 #define RX_ADDR_P0 0x0A #define RX_ADDR_P1 0x0B #define RX_ADDR_P2 0x0C #define RX_ADDR_P3 0x0D #define RX_ADDR_P4 0x0E #define RX_ADDR_P5 0x0F #define TX_ADDR 0x10 #define RX_PW_P0 0x11 #define RX_PW_P1 0x12 #define RX_PW_P2 0x13 #define RX_PW_P3 0x14 #define RX_PW_P4 0x15 #define RX_PW_P5 0x16 #define FIFO_STATUS 0x17 #define DYNPD 0x1C #define FEATURE 0x1D
-
Thread
3 Atmega8 mit Atmega32 verbinden
Selbstverständlich kann man in diesem Fall Uart auch ohne rs485 und halbduplex verwenden, tx von mega32 an rx von allen mega8 und rx von mega32 an tx aller mega88 .
nicht benötigt) TWI (bei 400kHz) 160kBit/s (Start+Adresse+Ack+Daten+Nack+Stop=20 Takte/8bit) 2 Leitungen (SCL+SDA) UART (bei 115,2 kBaud ohne Parity) 92,16kbit/s (1Startbit+8Datenbit+1Stopbit=10Bit/8Bit) 2-4 Leitungen (TX+RX oder RX + 3*CS) Diese ganzen Beispiele sind natürlich ohne Kontroll-Overhead
-
Thread
Raspberry Pi Compute Module mit PCIe in kleinerem Formfaktor
Blumpf schrieb im Beitrag #6458360: > Außerdem sind es verdammt viele Leitungen, mindestens 14 (6xRX, 6xTX, > MDIO). Dazu noch eventuell PHY-Reset und vielleicht Takt. Es sind 12 4TX 4RX 2CLK 2Error Deshalb ist es ja reduced GMII
Beitrag #6458365: > Blumpf schrieb: >> Außerdem sind es verdammt viele Leitungen, mindestens 14 (6xRX, 6xTX, >> MDIO). Dazu noch eventuell PHY-Reset und vielleicht Takt. > > Es sind 12 > 4TX 4RX 2CLK 2Error > > Deshalb ist es ja reduced GMII Das MDIO-Interface wird man im Normalfall schon
-
Thread
STM32L4 I2C slave interrupt transmit
Schau dir HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c) an!
; huart2.Init.BaudRate = 115200; huart2.Init.WordLength = UART_WORDLENGTH_8B; huart2.Init.StopBits = UART_STOPBITS_1; huart2.Init.Parity = UART_PARITY_NONE; huart2.Init.Mode = UART_MODE_TX_RX;
-
Thread
Buderus EMS-"Gateway" mit PIC18F / Sammelbestellung
Enable 5: "Analoge"-Mode Auswahl 6: 16MHz Quarz 7: 16MHz Quarz ------------------------- Port B ------------------------- 0: PS/2 Data (INT0) 1: PS/2 Clock (INT1) 2: CAN Rx 3: CAN Tx 4: Soft-Uart TX 5: Soft-Uart Rx (ISCP) 6: ---- (ISCP) 7: ---- (ISCP) ------------------------- Port
, DO35, 100V, 0,15A ADUM 1201 AR Digital-Isolator, 2-Kanal, low power, SO-8 LM 393 DIP Komparator, 2-fach, DIP-8 Die Widerstände heissen z.B. METALL 100K Die Kondensatoren: z.B. RAD 105 47/35 Elektrolytkondensator, 105°C, RM 2,0mm KERKO 68P
-
Thread
2x RS232 auf USB (mit modifizierten Daten)
char *c){ while ( *c != '\n' ) uart_send_byte(*(c++)); } int main(void){ DDRJ = 0b00000010; DDRH = 0b00000010; DDRD = 0b00001000; DDRA = 0b00001111; UBRR3H = 0x00; UBRR3L = 3; //115200Hz bei 7,382700 MHZ Quarz UBRR2H = 0x00; UBRR2L = 47; //9600Hz
7,382700 MHZ Quarz UBRR1H = 0x00; UBRR1L = 47; //9600Hz bei 7,382700 MHZ Quarz UCSR1B |= (1<<TXEN1)|(1<<RXEN1)|(1<<RXCIE1); // UART1 RX und Interupt einschalten UCSR3B |= (1<<TXEN3)|(1<<RXEN3)|(1<<RXCIE3); // UART TX einschalten UCSR2B |= (1<<TXEN2)|(1<<RXEN2)|(1<<RXCIE2
-
Thread
FIFO beim stm32f10
USART1_DMA_RxBuffer[bReadPtrUsart1DMA++]; if(bWritePtr1 > USART1_BUFFER_GROESSE) { bWritePtr1 = 0; bReadPtrUsart1DMA = 0; } } DMA_SetCurrDataCounter(DMA1_Channel5, USART1_BUFFER_GROESSE);
USART1_DMA_RxBuffer[bReadPtrUsart1DMA++]; > if(bWritePtr1 > USART1_BUFFER_GROESSE) > { > bWritePtr1 = 0; > bReadPtrUsart1DMA = 0; > } > } > DMA_SetCurrDataCounter(DMA1_Channel5, USART1_BUFFER_GROESSE
-
Thread
Feldbus für Mikrocontrollersysteme
müssen schon ihren Treiber deaktivieren wenn sie nicht dran sind. Aber prinzipiell könnte der Master z.B. dem slave 2 was schicken während er noch auf den ersten hört. Ob das mit dem Protokoll vereinbar ist steht wieder auf einem anderen Blatt.
Es gibt auch RS-485 Transceiver mit automatischer Richtungsumschaltung, z.B. MAX13487E
-
Thread
Pins mehrfach belegen
[/code] Jetzt möchte ich noch an Pin 7 Rx und an Pin 8 Tx unterbringen. Ich denk mal, dass die LED da stören wird. Ich könnte den LDR-Teil an den Pins 2, 3, 4 auch auf die Pins 4, 6, 7 legen und die LED an 2 und 3. Der LDR zwischen Rx und
Peripherieschaltung zu ersinnen, die weniger Platz benötigt als diese 6 zusätzlichen Pins. Der Platz wäre z. B. schon mit nur einem einzigen externen UND-Gatter ausgeschöpft, denn das hat ja auch schon mindestens 6 Pins (VCC, GND, 2 Inputpins, 1 Outputpin plus ein unbenutzter Pin um auf gerade Pinzahl zu kommen
-
Thread
Usart (Fleury) Übertragungsprobleme.
Ausgabe genau die >Gleiche wie jetzt auf Interface1. Könnte es sein das du tatsächlich die Pins D2, D3 benutzt statt RX und TX?
das ist doch für Uart Interface 0 oder? >Das Interface 1 steht an den Ports D.2 und D.3 zur Verfügung. Das steht so im Handbuch. Ich habs mal umgesteckt... und naja das ergebnis ist genau das Gleiche..... also ob D2 und D3 oder TX RX Pins... kein Unterschied.