-
Thread
Problem mit ADUM1201 und FT232
. Dort gibt es zwei Bezeichner. Der eine nennt sich TxD1 und geht auf JP1 *UND* JP3. Der andere nennt sich TxD1 und geht auf JP2 *UND*JP4. Falk B. schrieb im Beitrag #7925386: > Solche Lyrik ist Schwachsinn. Ein gescheiter Schaltplan zeigt sowas > SOFORT
ohne dass es zu elektrischen Fehlern kommt. Was soll diese künstliche Verknickelung von RX_USB, TX_USB, RX_LED und TX_LED? Falls du D1, D2 und U2 auf die passende Höhe zu U4 bringst, kannst du dir einen Haufen davon sparen und der Plan wird deutlich übersichtlicher. J1, J2 und J3 hängen immer noch
-
Thread
Seriell Data übertragung crash bei dem letzten Byte
RESERVED15_VECTOR (15 * 2u) /* 0xFFDE Reserved Int. Vector 15 */ #define USCIAB1TX_VECTOR (16 * 2u) /* 0xFFE0 USCI A1/B1 Transmit */ #define USCIAB1RX_VECTOR (17 * 2u) /* 0xFFE2 USCI A1/B1 Receive */ #define PORT1_VECTOR
0xFFEA ADC */ #define USCIAB0TX_VECTOR (22 * 2u) /* 0xFFEC USCI A0/B0 Transmit */ #define USCIAB0RX_VECTOR (23 * 2u) /* 0xFFEE USCI A0/B0 Receive */ #define TIMERA1_VECTOR (24 * 2u) /* 0xFFF0 Timer A CC1-2, TA */ #define
-
Thread
Interesse an einfach erweiterbarem Experimentierboard fuer den Xmega128a1?
Sven K. schrieb: > wäre es nicht denkbar die Platine in 2 aufzuteilen, > 1. Ethernet, SD, Bluetooth, etc, Reset Taster > 2. UI (also Display, Taster, etc.) Hm. Das UI also z.B. vorne andockbar ueber einen Steckverbinder? > Dann könnte man die 1.
Nochmal eine Frage an die 100MHz-Erfahrenen hier: Davicom schreibt im Layout Guide zum DM9000B: "Avoid using vias in routing the traces of RX± pair and TX± pair" - klar. VIAs sind fuer das Signal rechte Winkel und verursachen Reflexion. Dann aber auch: "Do not place the DM9000B / 9010B
-
Thread
JBC Lötstation mit selbstgebauter Absaugung
) ↳ fw="02:F2:EMU_02:8881031:0051123" [RX b1] src=0x00 dst=0x18 fid=254 ctrl=0x1E (M_R_DEVICEID) [TX b1] src=0x18 dst=0x00 fid=254 ctrl=0x1E len=30 (M_R_DEVICEID) ↳ deviceId="84495820251031014332F283" [RX b1]
ctrl=0x21 (M_FIRMWARE) [TX b1] src=0x18 dst=0x00 fid=254 ctrl=0x21 len=28 (M_FIRMWARE) ↳ fw="02:F2:EMU_02:8881031:0051123" [RX b1] src=0x00 dst=0x18 fid=254 ctrl=0x1E (M_R_DEVICEID) [TX b1] src=0x18 dst=0x00 fid=254 ctrl=0x1E
-
Thread
GPS-MS1 E Inbetriebnahme-Erfahrungen UPDATE µ-Blox (u-Blox
235947.000,0000.0000,N,00000.0000,E,0,00,0.0,0.0,M,,,,0000*00 $GPGLL,0000.0000,N,00000.0000,E,235947.000,V*2D $GPGSA,A,1,,,,,,,,,,,,,0.0,0.0,0.0*30 $GPGSV,1,1,01,21,00,000,*4B $GPRMC,235947.000,V,0000.0000,N,00000.0000,E,,,301004,,*1C $GPVTG,,T,,M,,N,,K*4E nach ungefähr einer _Minute_ und gutem Empfang
GPGSA,A,1,,,,,,,,,,,,,0.0,0.0,0.0*30 $GPGSV,3,1,12,30,89,000,41,16,64,000,,20,47,000,,14,41,000,*7B $GPGSV,3,2,12,01,30,000,,03,27,000,,06,23,000,,22,17,000,*7E $GPGSV,3,3,12,11,11,000,,27,08,000,,25,07,000,,08,06,000,*79 $GPRMC,225321.160,V,0000.0000,N,00000.0000,E,,,051104,,*17 $GPVTG,,T,,M,,
-
Thread
Probleme mit USART Ausgabe über SN75176
Datenblatt gefordert > 5V Versorgung. Direkt in der nähe hat er einen 100nf Kerko. Ansonsten > ist normal TX und RX angeschlossen und DE und RE können programmatisch > auf High Level gezogen werden. BluePill arbeitet mit 3V3, d.h. Tx geht auf max. 2.9V. Also sollte man mit BluePill nicht auf High Level
stimmt und ARM_Tx direkt mit Pin4 am 75176 verbunden ist, kann es nur folgendes sein: a) fehlerhafte Init Routine (unwahrscheinlich) b) Undefinierte Tx Pegel (sehr wahrscheinlich) P.P.S. Warum ist es so
-
Thread
CP/M auf ATmega88
. Mit "sfdisk -c /dev/sdb 2 52" kann man z.B. die Partitions-ID von Partition 2 auf 52 einstellen.
(PC=PC+2+offset) do_op_DJNZ: ; decremt B, jump B=0 lds temp, z_b ; B in temp dec temp ; temp decrementieren breq do_op_DJNZ_Z ; bei B=0 sts z_b, temp ; temp in B subi opl, 0x80
-
Thread
mcHF-SDR Selbstbau-Projekt
auch an Pin 1 und Pin 3 des Übertragers erscheinen. Die DC-Spannung an den drei Sekundärpins sollte 2,5V betragen. Der theoretische Mischverlust beträgt 3dB, da sich die Eingangsleistung auf zwei Frequenzen aufteilt. In der Praxis betragen die Mischverluste eher 4..5dB. Also sollte das NF-Signal an
auch Dummy-Loads mit einem Messausgang für ein Oszilloskop und es gibt auch Dämpfungsglieder 20dB (100:1) und 30dB (1000:1), die für die zu messende Leistung geeignet sein müssen, d.h. die z.B. 25W oder 80W oder meht Leistung verbraten können. Diese haben den Vorteil, dass Du direkt das vom TX
-
Thread
Volatile-Zugriffe umsortieren
u8 i = tx_in; ROLLOVER( i, TX0_SIZE ); /*1*/ tx_buff[tx_in] = c; while( i == vu8(tx_out)); // until at least one byte free // tx_out modified by interrupt ! tx_in = i; /*2*/ UTX0_IEN
Zugriffe eigentlich umsortiert werden können... Vielleicht etwas präziser: [c] volatile int a; int b; volatile int c; a = 1; b = 2; c = 3; [/c] Wenn ich das strikt nach der oben zitierten Passage aus dem Standard interpretiere, habe ich mindestens drei Sequenzpunkte erzeugt, nämlich jeweils
-
Thread
FlipFlop initial value bei MachXO2?
vhdl] library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; library machxo2; use machxo2.all; use machxo2.components.all; library work; use work.all; entity test is port (tx: out std_logic; tx_empty_out: out std_logic); end test; architecture impl of
vhdl] library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; library machxo2; use machxo2.all; use machxo2.components.all; library work; use work.all; entity test is port (tx: out std_logic; tx_empty_out: out std_logic); end test; architecture impl of
-
Thread
konventioneller Konverter USB-UART ohne Funktion
Verbindung bis zu diesen Pins funktioniert. Ich weiß aber immer noch nicht, ob 1. die Baudrate stimmt, 2. welche Pegel diese Pins verwenden und 3. welcher davon der RX und der TX ist. All das zeigt mir dann das Oszi. Und so ist die Inbetriebnahme spätestens nach einer halben Stunde erledigt. Karl
Karl B. schrieb im Beitrag #7959551: > Habe übrigens auf den Notebook gerade Win 11 25H2 installiert. Selbst Schuld. Das macht sicher nix besser.
-
Thread
Freescale Drucksensor an Atmega8
Sensors kompensieren. Jeder Sensor bekommt so einen MC 'Kopf'. Ein geschickt gemachtes 1-Wire oder 2-Wire Protokoll (z.B. langsames SPI oder I²C) könnte dann alle Sensoren auf einen gemeinsamen Bus bringen.
legt den gesamten Bus lahm). [code] Rx1 -- R1in(13) - R1out(12) - Brücke - T2in(11) - T2out(7) -- Tx2 Tx1 -- T1out(14) - T1in(11) - µC/Gatter - R2out(9) - R2in(8) -- Rx2 Tx(PC) - Rx1(C1) Tx2(C1) - Rx1(C2) Tx2(C2) - Rx1(Cn) Tx2(Cn) Rx(PC) - Tx1(C1) Rx2(C1) - Tx1(C2) Rx2(C2
-
Thread
Stack Überschreiber beim Rechnen mit uint64_t
mov r16, r19 5b46: f4 2e mov r15, r20 5b48: e5 2e mov r14, r21 5b4a: d6 2e mov r13, r22 5b4c: c7 2e mov r12, r23 5b4e: b8 2e mov r11, r24 5b50
06 2b lds r6, 0x2B06 5b86: 70 90 07 2b lds r7, 0x2B07 5b8a: 80 90 08 2b lds r8, 0x2B08 5b8e: 90 90 09 2b lds r9, 0x2B09 5b92: 6a 0c add r6, r10 5b94: 7b
-
Thread
Wie verbindet man STM32 über I2C und HAL mit AD7746?
, 0x91, &aTxBuffer, 32) { } void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *I2cHandle) { if (HAL_I2C_Master_Receive_IT(&hi2c3, 0x90, &aTxBuffer, 32) == HAL_OK) { HAL_GPIO_TogglePin(GPIOA, GPIO_PIN
.Init.WordLength = UART_WORDLENGTH_8B; huart2.Init.StopBits = UART_STOPBITS_1; huart2.Init.Parity = UART_PARITY_NONE; huart2.Init.Mode = UART_MODE_TX_RX; huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart2.Init.OverSampling
-
Thread
MSP430 GPS-Daten von UART0 Probleme
115200 Baud aus 1MHz erzeugen http://mspgcc.sourceforge.net/baudrate.html UBR11=0x00; UMCTL1=0x5B; // Modulation der Baudrate durch Korrekturfaktor genau 114942bps UCTL1 &= ~SWRST; // USART freigeben IE2 |= URXIE1; // TX- und RX-interrupts
EINT(); machen und danach noch explizit den entsprechenden Interrupt einschalten? Also diese Zeile z.B. IE2 |= URXIE1; // TX- und RX-interrupts anschalten Was hat das für einen Sinn? Heisst _EINT(); das ich einfach mal grundsätzlich Interrupts zulasse und danach läuft noch kein einziger
-
Thread
DAB+ Modul KeyStone 8650
die 2 bits PLI (*Parameter Length Indicator*) b11 gefolgt von 6 Bits der ParamId (*Parameter Identifier*): b001100, dem 1 Bit Ext (*ExtensionFlag*) b0 und - weil Ext = 0 - den 7 Bits *DataFieldLength Indicator* b0101100 = d44, also 44 Bytes an Daten, die jetzt folgenden Inhalt haben: [c] 00 32 30 31 36 2D 30 31 2D 32 36 2E 31 38 2D 34 .2016-01-26.18-4 30 2D 34 35 2E 37 30 33 34 33 32 32 36 33 35 38 0-45.70343226358
-
Thread
Ki Hilft.wenn auch nicht immer
+++++++++++++++++++++++++++++++++++++++++ //Bitwackel softseriell serill mit 9600 baud //#define TX2_PIN 6 // eigener TX-Pin #define BIT_TIME 96 // Mikrosekunden bei 9600 Baud #define TX2_PIN 6 void softSendByte(byte data) { // Startbit digitalWrite(TX2_PIN, LOW); delayMicroseconds
Datenbits, LSB zuerst for (byte i = 0; i < 8; i++) { if (data & (1 << i)) digitalWrite(TX2_PIN, HIGH); else digitalWrite(TX2_PIN, LOW); delayMicroseconds(BIT_TIME); } // Stopbit digitalWrite(TX2_PIN, HIGH); delayMicroseconds(BIT_TIME); } [/c] der alte
-
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
Neues Terminal-Programm für Windows
(RX-überwacht auf RX-com1 und TX-überwacht auf RX-com2)
(@buffer, chr (16 * wert ($str1) + wert ($str2))); } my $b2 = join ('', @buffer); $b2 =~ tr/\{\[\}\]\~\^\|/äÄüÜßÖö/; $b2 =~ s/\014/<FORMFEED>/g; $b2 =~ s/\n//g; return $b2; } sub wert { my $s = shift; my $erg = ord
-
Thread
Lidl-Multimeter PDM-300-C2 Analyse und Erweiterungen
Ich habe das Format geknackt :-) 0: 0b11011100 Präambel 1: 0b10111010 Präambel 2: 0b00000001 Präambel 3: 0b00010110 Modus & Range 4: 0b00000100 Exponent 5: 0b00000000 Wert (High Byte) 6: 0b00000000 Wert (Middle Byte) 7: 0b00000000
) (High/Middle? Byte) 7: 0b00000000 Wert (in Counts) (Low Byte) 8: 0b00000000 Prüfsumme 2 bis 7 (High Byte) 9: 0b00011011 Prüfsumme 2 bis 7 (Low Byte)
-
Thread
Software UART
(CompareB) nicht länger als 1/2 Bitzeit und der Sendeinterrupt (CompareA) nicht länger als 1 Bitzeit verzögert werden. Die höhere Baudrate sollte deshalb immer mit der Hardware-UART erfolgen. Die Soft-UART
16-Bit). Das hat Auswirkung auf die möglichen Baudraten (wie P.D. schon bemerkt hat) läuft aber z.B. mit einem 18.432MHz Quarz und 9600 Baud. 2. Verwendung des Flankeninterrupts INT0 anstelle des Capture-Interrupts. Umstellung auf andere Flankeninterrupts oder Timer sollte gehen, ist hier aber
-
Thread
strings übergeben
[c] void uputs( char *s ) { strcpy(protocol, s); while (*s) { ready = 0; IE2 |= UCA0TXIE; while(!ready); } } #pragma vector=USCIAB0TX_VECTOR __interrupt void USCI0TX_ISR(void) { char temp; if(send_XPort) { temp = protocol[i++];
return FALSE; while( next_char != -1 ) ; strcpy( protocol, s ); next_char = 0; IE2 |= UCA0TXIE; return TRUE; } #pragma vector=USCIAB0TX_VECTOR __interrupt void USCI0TX_ISR(void) { char temp = protocol[ next_char ]; if( temp == '\0' ) { next_char = -1;
-
Thread
CAN übertragung brich ca. nach 10 sek ab
spiout ldi temp, 0b00110000 ; TXB0CTRL rcall spiout ldi temp, 0b10011111 ; Dummy Byte rcall spiout sbi PortB, 4 ; release /CS ;temp2 has content of TXB0CTRL sbrc temp2, 3
die SPI-Instructions wie z.B Load TX Buffer? Dann kannst du die Daten auch sequentiell übertragen ohne ständig wieder die adresse vorzugeben. Deinen TX code-teil nutzt da aber ja in diesem Programm garnicht, ist mir nur aufgefallen
-
Thread
USART Sende Problem - 168
unsigned char c) { //Warten bis platz im Zwischenspeicher frei wird while( (RN_BUF_MASK - tx_in - tx_out) < 1) ; tx_buff[TX_BUF_MASK & tx_in++] = c; UCSR0B |= 1<<UDRIE0; }
1. du hast 2 volatile zu viel weggenommen 2.(RN_BUF_MASK - tx_in - tx_out) Wie schon erwähnt du erhöhst unsauber (ohne zu maskieren) die Zeichen gehen schneller in den Puffer als heraus d.h. z.B. RN_BUF_MASK=
-
Thread
125 KHz Signal
always exist even there's not transfer undergoing }; //ESP_ERROR_CHECK(rmt_apply_carrier(tx_chan, &tx_carrier_cfg)); // modulate 125kHz carrier to TX channel } void loop() { rmt_tx_init(); rmt_transmit_config_t tx_config = { .loop_count = 0, // no transfer loop
ein taufrisches XUbuntu aufgesetzt und alles > nach Anleitung installiert ... mit beiden APIs - v2 und v3 - nischt! Bei mir läuft die API zumindest unter Windows problemlos. Es könnte aber auch damit zusammenhängen, dass aus Deinem ursprünglich genannten RSP1A plötzlich ein RSP1B wurde. Mag
-
Thread
Antennen und deren Anpassung an die Quelle
Jens B. schrieb im Beitrag #7613872: > SWR und Resonanz sind afair 2 verschiedene Dinge, die nicht > zusammenliegen müssen. Das ist schon richtig. Wenn die Antenne jedoch auf F0 in Resonanz ist, geht
Kurt schrieb im Beitrag #7614435: > Jens B. schrieb im Beitrag #7613872: >> SWR und Resonanz sind afair 2 verschiedene Dinge, die nicht >> zusammenliegen müssen. > > Das ist schon richtig. Wenn die Antenne jedoch auf F0 in Resonanz ist,
-
Thread
Vier RS232 miteinander verschalten, einer der vier sendet, die anderen Empfangen
sich Leute unterhalten. Die Schaltung würde so aussehen: [pre] 10kΩ TxD 1 o----|>|----+----[===]----0 -12V | RxD 1 o-----------+ | | TxD 2 o----|>|----+ | RxD 2 o-----------+
schrieb im Beitrag #6887377: > Die Schaltung würde so aussehen: > 10kΩ > TxD 1 o----|>|----+----[===]----0 -12V > | > RxD 1 o-----------+ > | > | > TxD 2 o----|>|----+ > | > RxD 2 o-----------+
-
Thread
Mikrocontroller: Ringpuffer für UART-Kommunikation
hier z.B. #define buff_tx_sz (300*10) char buff_tx[buff_tx_sz]; unsigned int buff_tx_rd =0; unsigned int buff_tx_wr =0; unsigned int buff_tx_rn =0; unsigned int buff_tx_wn =0; void
==buff_tx_rn) idle(); c = buff_tx[buff_tx_rd++]; if(buff_tx_rd>=buff_tx_sz) buff_tx_rd=0; buff_tx_rn++; return c; }
-
Thread
STM32F103 und CooCox, Anfängerfragen
Programmiervorgang startet. Lasse sofort danach den Reset Knopf wieder los. https://www.youtube.com/watch?v=jEz0C2bT2M0
#5130869: > Wie > wird der virtuelle COM-Port dann an das STM32-Board angeschlossen? RX an > IO und TX an SCK??? Nein, an eines der Rx/Tx Pärchen von denen es drei gibt, z.B. Rx an PA9, Tx an PA10, und Masse nicht vergessen.
-
Thread
ATmega328PB: UART(MC) empfängt falsche Daten
&=~(1<<FE0);/*kein_Frame_-_Fehler*/ UCSR0A&=~(1<<DOR0);/*kein_Data_-_Overrun*/ UCSR0A&=~(1<<U2X0);/*keine_doppelte_Uebertragungsgeschwindigkeit*/ UCSR0A&=~(1<<MPCM0);/*keine_Multi_-_Prozessor_-_Kommunikation*/ UCSR0B|=(1<<RXCIE0);/*RX_-_Interrupt*/ UCSR0B&=~(1<<TXCIE0);/*kein_TX_-_Interrupt*/ UCSR0B&=~(1<<UDRIE0);/*kein_UDRE_-_Interrupt*/ UCSR0B|=(1<<RXEN0);/*Receiver*/ UCSR0B&=~(1<<TXEN0);/*kein_Transmitter*/ UCSR0B&=~(1<<UCSZ02);/*data_bit=8->[2:0]=011*/ UCSR0B&=~(1<<RXB80);/*kein_
-
Thread
Taster Entprellung am Attiny 841 und Auswertung
// PB 1 - Taster 5 #define ALL_KEYS (1<<KEY_1|1<<KEY_2|1<<KEY_3|1<<KEY_4|1<<KEY_5) PUEA=0b10100001; // R auf Taster PORT A PUEB=0b00000011; // R auf Taster PORT B #define REPEAT_MASK (1<<KEY_1|1<<KEY_2|1<<KEY_3|1<<KEY_4|1<<KEY_5)
_2 0 // PB 0 - Taster 2 #define KEY_portB_5 1 // PB 1 - Taster 5 dabei 2 Bits an A und B die selbe Bitnummer haben #define KEY_1 0 // PA 0 - Taster 1 #define KEY_2
-
Thread
Victron ve.bus protokoll analyse
8383FE26E48050C310D6EE400FF82F86C30901C9FF 8383FD2755D6D9EE40FF 8383FE28E47E50C36099EF400FF82F86C20901B6FF 8383FD2955D69CEF7AFF 8383FE2AE48050C3B05CF0400FF82F86C309019DFF 8383FD2B555860F031FF Ich brauche hilfe bei der interpretation.
0xFA 0x04 0xFF wird zu 0xFA 0x05 Stimmt das? Aber was ist denn das? [code] FE72E4 4850 C38076B1 490F 02608634 1A01 1CFF FE74E4 8050 C3D039B2 490F 02608634 1A01 CEFF FE76E4 4A50 C320 FA7DB2 490F 02608635 1A01 73FF FE78E4 8050 C370C0B3 490F 02608634 1A01 A2FF [/code]
-
Thread
Probleme mit Call by Reference
[1]=SHORT_L_BYTE(Befehl); SpiBufTx[0]=Nachricht[0]; SpiBufTx[1]=Nachricht[1]; SpiBufTx[2]=SHORT_H_BYTE(pec15(Nachricht,2)); SpiBufTx[3]=SHORT_L_BYTE(pec15(Nachricht,2)); HAL_SPI_Transmit(&hspi1, SpiBufTx, 4, 1)
SpiBufTx[1]=Nachricht[1]; SpiBufTx[2]=SHORT_H_BYTE(pec15((char *)Nachricht,2)); //erstmal so umständlich weil unsicher mit der Pec berechnung SpiBufTx[3]=SHORT_L_BYTE(pec15((char *)Nachricht,2));
-
Thread
ATtiny841 I2C Slave Beispiel
aufschreiben könntest. Mit "Senden" und "Laden" kann man als Außenstehender nicht viel anfangen. Also z.B. so I2C-Start, Adr. 01, I2C-Restart, usw...
t ack; for (i=0;i<8;i++) { i2c_delay(); if ( b & 0x80 ) { SDA_HI(); } else { SDA_LO(); } i2c_delay(); SCL_HI(); i2c_delay(); i2c_delay(); SCL_LO(); b <
-
Thread
I2C Bus mit dem Attiny 841
uint8_t command; uint8_t versa = 1; uint8_t versb = 2; volatile uint8_t tx_buff; // 4 volatile uint8_t tx_buf[4]; volatile uint8_t tx_buf_index = 0; void I2C_init(void) { TWSA |= I2C_SLAVE_ADDRESS; // Register Bus Adresse TWSD |= 0xFF
Wenn ich dich richtig versteh, meinst du das. [c] uint8_t tx_buf[4]; tx_buf[0]=0x05; tx_buf[1]=0x07; tx_buf[2]=0x09; tx_buf[3]=0x02; uint8_t tx_buf_index=0; [/c]
-
Thread
ESP-32 SPI sendet falsche bits
Serial.println(read_spi_pin(4)); delay(1000); } bool read_spi_pin(uint8_t pin_nr) { spi_master_tx_buf[0] = pin_nr & 0b00111111; spi_master_tx_buf[0] = spi_master_tx_buf[0] | 0b10000000; master.transfer(spi_master_tx_buf, spi_master_rx_buf, BUFFER_SIZE); bool response_valid = false;
return response_high; } void write_spi_pin(uint8_t pin_nr, bool write_high) { spi_master_tx_buf[0] = pin_nr & 0b00011111; if (write_high) { spi_master_tx_buf[0] = spi_master_tx_buf[0] | 0b01000000; } master.transfer(spi_master_tx_buf, spi_master_rx_buf, BUFFER_SIZE); } [/c]
-
Thread
Eine UART abwechseln mit IC und PC verwenden?
Über die USB/UART Bridge (1) soll IC (3) per UART verbunden werden. Gleichzeitig soll auch die MCU (2) mit IC (3) per UART verbunden sein. 1 und 2 sind niemals gleichzeitig aktiv! Sobald ich Tx von 2 dazu hänge habe ich Probleme bei der Datenübertragung.
doch einfach das DTR-SIgnal vom FTDI, um einen Multiplexer umzuschalten. Zum Multiplexen kannst Du z.B. einen 74LVC2G125 und einen 74LVC2G126 nehmen - neim 125 ist der Enable invertiert, beim 126 nicht. Problem gelöst. Wenn Du magst, kannst Du das DTR noch an einen Pin vom Prozessor führen, damit der
-
Thread
Modbus RTU Slave fuer AVR
// call initInterrupts() after baudrate init! TCCR2A = (1 << WGM21) | (0 << WGM20); TCCR2B = (1 << WGM22) | (0 << CS22) | (1 << CS21) | (1 << CS20); OCR2A = UBRR0 >> 1; TIMSK2 |= (1<<OCIE2A); } [/c] Gruß aus Uppsala,
folgenden Aufbau: [code] ATMega MAX485 USB->RS485-Adapter ________ PD2 1|RO Vcc|8 5V | | PD7 2|/RE B|7 485- | | PD7 3|DE A|6 485+ | | PD3 4|DI GND|5
-
Thread
Touch - wie kalibrieren in C?
u2x = uP4.x*(1-tx) + uP3.x*tx u2y = uP4.y*(1-tx) + uP3.y*tx uresx = u1x*(1-ty) + u2x*ty uresy = u1y*(1-ty) + u2y*ty b1x = bP1.x*(1-tx) + bP2.x*tx b1y = bP1.y*(1-tx) + bP2.y*tx b2x = bP4.x*(1-tx) + bP3.x*tx b2y = bP4.y*(1-tx) + bP3.y*tx bresx = b1x*(1-ty) + b2x*ty bresy = b1y*(1-ty) + b2y*ty [/pre] tx und ty sind nun effektiv Koordinaten eines neuen normalisierten Koordinatensystems, und mit
-
Thread
MAX232: T1out Pegel unsymmetrisch
>Nein, Tx und Rx sind NICHT vertauscht. Tx an Rx Rx an Tx Wirklich?
A. K. schrieb: > 2div=2V/10Ohm = 200mA. Kann so nicht stimmen. Manno, tut mir leid, ich hab jetzt nochmal neu gemessen: - 10-Ohm-Widerstand in der Tx-Leitung - Oszi-GND an das Signal-GND vom MAX232 - Messspitze 1
-
Thread
Hammond B3 Clone mit ATMega
@Eric B. (beric): Da der TO ja schon den ATmega328 genannt hat, bin ich davon ausgegangen, daß die 'Unter-Baugruppen' ja schon _einen_ echten UART haben, der 'µC MIDI' braucht aber 2, was es nicht bei allen
das wäre wenigstens einfach zu ersetzen wenn es mal kaputt oder verschütt ginge: 1 +12V (5V ?) 2 +12V (5V ?) 3 TX+ 4 RX+ 5 RX- 6 TX- 7 Ground 8 Ground Schirm Ground > [...] mit weniger Pins für alle Peripherie passt vielleicht das > ganze System in einem einzelnen uC. Hatte
-
Thread
STM32F2xx USART weigert sich
; USART_InitStructure.USART_Mode = USART_Mode_Tx | USART_Mode_Rx; USART_Init(USART2, &USART_InitStructure); USART_Cmd(USART2, ENABLE); USART_SendData(USART2, (uint16_t) 0x49); } [/code] Das Ergebnis dieses Codes ist ... nichts.
; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; /* Enable GPIO clock */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE); /* Enable UART clock */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); /*
-
Thread
ST26 16MBit Flash <.> XMEGA256A3BU
0xBF) // { // if (DataFlash->JEDEC_ID[1]==0x26) // { // if (DataFlash->JEDEC_ID[2]==0x41) // { // sst26_ONLINE // }else{ // sst26_OFFLINE // } // } // } DataFlash->TxBuffer[0]= 5; sst26_write_start(DataFlash,FlashSPI); sst26
while (1) { char Read[7]; Spi_USARTD0_Slave_Select_Low(FlashSPI); Spi_USARTD0_Rx_Tx(0x72); Read[0] = Spi_USARTD0_Rx_Tx(0x00); Read[1] = Spi_USARTD0_Rx_Tx(0x00); Read[2] = Spi_USARTD0_Rx_Tx(0x00); Read[3] = Spi_USARTD0_Rx_Tx(0x00); Read[4] = Spi_USARTD0_Rx_Tx
-
Thread
Prototyp: Low-Cost Powerline Hausbus mit AVR
Ich habe mir mal die Elektronik angeschaut, du hast nicht RX und TX des Kontrollers benutzt, warum nicht.... eine Brücke an TX( PD1 und PD2 ) warum..... PB1 macht den Ausgang Daten, warum nicht TX...... Hat es was mit der Trägerfrequenze zu tun? Bin nicht der C -
verstanden. jetzt stellt sich noch die Frage, ob a) den TDA über Kondensator ans Netz oder b) über Übetrager ans Netz. Mir ist klar, daß im Fall a) ein weiteres Netzteil und Optokoppler notwendig sind b) das 2te Netzteil entfällt, dafür aber "teurer" Übetrager. Unabhängig von teuer
-
Thread
sprintf mehrfach
10 ); } if ( ( MsgBuf_TX1.Frame != MsgBuf_RX2.Frame ) || ( MsgBuf_TX1.MsgID != MsgBuf_RX2.MsgID ) || ( MsgBuf_TX1.DataA != MsgBuf_RX2.DataA ) || ( MsgBuf_TX1.DataB != MsgBuf_RX2.DataB ) ) { while
>TID2 = pTxBuf->MsgID; LPC_CAN1->TDA2 = pTxBuf->DataA; LPC_CAN1->TDB2 = pTxBuf->DataB; LPC_CAN1->CMR = 0x41; return ( TRUE ); } else if ( CANStatus & 0x00040000 ) { LPC_CAN1->TFI3
-
Thread
Mehrere vorhandene Funktionen für bis zu 4 UART's nutzen?
(uartNr) { case 0: uart0_buf_tx[pin] = chrtx; pin++; pin = pin & (UART0_TX_BUFFER_SIZE - 1); SET_BIT(UCSR0B, UDRIE0); break; case 1: ... case 2: ... case 3: ... }
_TX_BUFFER_SIZE - 1); UART0.pos_in_tx = pin; SET_BIT(UCSR0B, UDRIE0); } [/c] Um nun eine Zeichenkette einzuspielen nutze ich... [c] void uart_char(UART_P uart, char chrtx) { uart->put_char
-
Thread
RFM12 vs nrf24l01
_delay_us(150); SPI_Write_Reg(WRITE_REG + CONFIG, MASK_TX_DS | MASK_MAX_RT | 0x0f); // Set PWR_UP bit, enable CRC(2 bytes) & Prim:TX. MAX_RT & TX_DS enabled.. } void SwitchToTxMode() { CE_LOW(); _delay_us(150); SPI_Write_Reg(WRITE_REG + CONFIG, MASK_TX_DS | MASK_MAX_RT | 0x0e); // Set PWR_UP bit, enable CRC(2 bytes) & Prim:TX. MAX_RT & TX_DS enabled.. } void Send_Packet(uint8_t type,uint8_t* pbuf,uint8_t len) { uint8_t fifo_sta;
-
Thread
Brauche Unterstützung beim OV7670 (bzw. SCCB)
Value of 0xAC = 0x00 Value of 0xAD = 0x80 Value of 0xAE = 0x80 Value of 0xAF = 0x80 Value of 0xB0 = 0x00 Value of 0xB1 = 0x00 Value of 0xB2 = 0x00 Value of 0xB3 = 0x80 Value of 0xB4 = 0x00 Value of 0xB5 = 0x04 Value of 0xB6 = 0x00 Value of 0xB7 = 0x66 Value of 0xB8 = 0x00 Value of 0xB9
geschaur, wofür der ist, muß ich also in Deinem Source noch auf L schalten, kein Problem. RCK Du auf D2, ich auf B2, WR Du auf B4, ich auf B4, OE Du nicht beschaltet, ich auf B5, also auch noch auf L setzen WRST Du auf C3, ich auf D2, RRST Du auf C2, ich auf B3. Werde ich nachher in Deinem Source
-
Thread
DMX Board geht nicht :/
dmx_tx_state = 2; break; case (2): _delay_us(10); //Ausgabe des Zeichens UDR = dmx_buffer[dmx_channel_tx_count]; dmx_channel_tx_count++; if(dmx_channel_tx_count
UBRR0 = (F_CPU / (DMX_BAUD * 16L) - 1); DDRD |= (1<<PD1); //Output TXD Pin ATmega88 UCSR0B|=(1<<TXEN0)|(1<<TXCIE0); // TXEN0 Transmitter enable / TXCIE0 TX complete interrupt enable UCSR0C|=(1<<USBS0); //USBS0 2 Stop bits sei();//Globale Interrupts Enable UDR0 = 0;//Start DMX
-
Thread
GTP I/Os im FPGA noch abänderbar?
schaue mich mir gerade an Blicke da noch nicht ganz durch. [c] //PHY //A7 //MGT // Soll? TX0_3_N B11 RXP0 R3N TX0_0_P D14 RXP1 R0P TX0_1_P B13 RXP2 R1P TX0_2_P D12 RXP3 R2P //PHY //A7 //MGT // Soll? RX0_3_P B7 TXP0 R3N RX0_2_N D8 TXP1 R0P RX0_0_P B9 TXP2 R1P RX0_1_N D10 TXP3 R2P //PHY //A7 //MGT // Soll? TX0_3_P A11 RXN0 R3P TX0_0_N C14 RXN1 R0N TX0_1_N A13 RXN2 R1N TX0_2_N C12 RXN3 R2N //PHY //A7 //MGT // Soll? RX0_3_N A7 TXN0 T3N RX0_2_P