-
Thread
Pins am Mega16 lückenhaft
Pins am Port C sind immer null. Das Programm habe ich mit Cut&Paste erstellt, und inzwischen mehrmals gurchgesehen, da kann ich keinen Fehler feststellen (der Vollständigkeit gebe ich es mal mit an).
[pre] if( µC == Mega 16 && Probleme am Port C ) disable_fuse( JTAGEN ) [/pre] :-) http://www.mikrocontroller.net/articles/AVR_Fuses#Kompatibilit.C3.A4tsfuses_und_manchmal_l.C3.A4stige_Defaults
-
Thread
Einfaches Programm zum Testen, ob das STK500 auch läuft
Was für ein serielles Kabel verwendest du? Gekreuzt oder ungekreuzt (Pin 2 un Pin 3)? Das STK500 benötigt (schwachsinnigerweise) ein Verlängerungskabel, also ungekreuzt.
> Edit: Moment. Welchen µC programmierst du jetzt eigentlich? > Hat der überhaupt einen Port D bzw. einen Port B? Also momentan ist der ATmega8515L auf dem Gehäuse (SCKT3000D3).
-
Thread
2MB DRAM an AVR Gesperrt
wollte hab ich einfach die beste lösung genommen die ich mit verfügbaren mitteln herstellen konnte. 2 ADC kanäle sind über 2 Pins erreichbar (der rest des Ports geht für den Ram drauf) Ebenfalls über 2 pins sind die XTAL pins zu erreichen um noch nen externen qu arz/oszillator anzuhängen. Kondensatoren
Daten-Ausgänge der SIMM-30 Module sehr hochohmig sind ? Hab gerade mal eine LED + 470 Ohm von +5V gegen einen Daten-Pin geschaltet, sofort wurden die Daten zwischen µC und SIMM-Modul nicht mehr korrekt übertragen. Bernhard
-
Thread
LSC Smart Connect - neues Smart Home System bei Action
=2 -fPIC -I/usr/include/python3.7m -c sslpsk/_sslpsk.c -o build/temp.linux-armv7l-3.7/sslpsk/_sslpsk.o sslpsk/_sslpsk.c:19:10: fatal error: openssl/ssl.h: Datei oder Verzeichnis nicht gefunden
cmd=rtttl,5:d=4,o=5,b=112:8a,8a,a,8a,8a,a,8a,8c6,8f.,16g,2a,8a-,8a-,8a-.,16a-,8a-,8a,8a.,16a,8a,8g,8g,8a,g,c6" cheers, Henri
-
Thread
ATxMega Stick
Deine Tx und Rx gehen an die falschen xmega Ports. Entweder PD2/PD3 oder PD6/PD7. Nicht PD4/PD5 Hat sich eigentlich sonst noch jemand den Schaltplan angeschaut? Sieht nicht so aus
geht es auch. ich schrieb im Beitrag #2289422: > Deine Tx und Rx gehen an die falschen xmega Ports. Entweder PD2/PD3 oder > PD6/PD7. Nicht PD4/PD5 Ja das hab ich behoben. Ist im Layout oben auch schon drin. Hatte ich auch gemertk (weil ich nachträglich die Pins getauscht hab) Ich hab den neuen
-
Thread
2x3 LED Strom Spannung einfache Kalibrierung Justierung per Software - ATmega8 Assembler
Anzeige Spannung 0.00...2.56V (mV Bereich) 2.60...99.9V ( V Bereich) Anzeige Strom 0.00...9.99A Der Spannungsteiler für ADC0 bitte so dimensionieren, dass die Spannung am ADC0-Pin 2,5V (Referenzsspannung
=5 .equ PIN_BALKEN_B =2 .equ PIN_BALKEN_C =3 .equ PIN_BALKEN_D =2 .equ PIN_BALKEN_E =1 .equ PIN_BALKEN_F =4 .equ PIN_BALKEN_G =3 .equ PIN_BALKEN_P =4
-
Thread
ADC-Pins Übersprechen / war: Ich fass es nicht
Minimalkonfiguration, wo ich das Verhalten des Arduino Mega nicht verstehe. Das kleine Programmchen liest 3 ADC-Pins ein (A0, A1, A2). [c]void setup() { Serial.begin(9600); delay(500); } void loop() { Serial.print(analogRead(A0)); Serial.print("\t"); Serial.print(analogRead(A1)); Serial.print
beim Umladen des Sample&Hold-Kondensators im ADC. Alternativ kannst Du mehrfach samplen, d.h. den Pin 2 - 3x lesen und nur die letzte Messung verwenden. Kostet natürlich massig Laufzeit.
-
Thread
uC >>> Tastenentprellung via Macro
natürlich nicht ok. Denn egal ob der Pin PD2 auf 0 oder aus 1 ist, es wird nie der Fall sein, dass [c] PIND & (1<<PD2) [/c] den Wert 1 ergibt. Das ist unmöglich. Wenn der Pin auf 0 ist, dann liefert der Ausdruck 0, wenn der Pin auf
if( PIND & (1<<PD2) ) // nicht 0? .... [/c] In C ist weniger oft mehr. Insbesondere ist [c] if( irgendwas != 0 ) [/c] und [c] if( irgendwas == 1 ) [/c] nicht dasselbe.
-
Thread
Cortex M3 wird sehr heiß
und ich kann nicht mehr auf den µC zugreifen! Wo genau kann denn der Fehler liegen? ist ein Pin womöglich gesetzt und verursacht einen Kurzschluss? Arbeite auch erst seit etwa 1 1/2 Monaten mit dem Cortex, also bin ich kein Profi
30Sek bis man ihn dann nicht mehr anfassen kann. Schließe ich den JTAG an dauert es wie gesagt nur 2-3 Sek.
-
Thread
Lib für Sensirion SHT1x Sensor an AVR
-400 weil alles was ich von dem chip bekomme ist 0. Das program lauft auf ATmega16 @ 16MHz, Data PC3(mit pullup 10k), SCK PC2 und so hab ich die lib geendart: [c] #define F_CPU 16000000 ... /* SHT SCK and DATA Port and Pin definitions */ #define SHT_DATA_PORT PORTC #define SHT_SCK_PORT PORTC #define SHT_DATA_DDR DDRC #define SHT_SCK_DDR DDRC #define SHT_DATA_PORT_PIN PINC // ! the PINx register of the DATA Port ! #define SHT_DATA_PIN PC3 #define SHT_SCK_PIN PC2 [/c] die CRC kontrolle passt nie
-
Thread
ATMEGA16 LCD2x16
gleich wie im AVR-Tutorial. Pin #-LCD Bezeichnung-LCD Pin-μC 1 Vss GND 2 Vcc 5V 3 Vee GND oder Poti (siehe oben) 4 RS PD4 am AVR 5
DB5 PD1 am AVR 13 DB6 PD2 am AVR 14 DB7 PD3 am AVR Weiß jemand wie die richtige Dip Switch Stellung am easyavr5 für diese Schaltung zu treffen ist
-
Thread
avrdude-ATTiny13-ohne Programmer
Also das mit dem m328p könnte sich geklärt haben: Die installierte avrdude-Version ist bei mir: 5.5-112.3 :-( Was den Tiny anbelangt: ttyS0: Das ist amtlich der einzige COM-Port. demsg liefert: serial8250: ttyS0 at I/O 0x3fa (irq=4) is a 16550A Und: Wie gesagt, wenn ich das Windows-Programm
# 3/TXD -> PB2/SCK # Einen programmierbaren Reset gibt es nicht, der Pin-9 ist nicht belegt und fungiert als Phantomangabe programmer id = "rafaprog"; desc = "design rafa, serial-bitbanging";
-
Thread
5 Zeiten mit ICP messen -> Problem mit den Timerwerten (ATmega8 und C)
X==5) { Phase1 = Messung[5] + Messung[6]; Phase2 = Messung[7]; Phase3 = Messung[8]; } W1 = Phase3 - Phase1; W2 = Phase2 - Phase1; W1 = W1*100000; W3 = W1/W2; W3 = W3/32; W3 = W3*334;
vom UTI kontrolliert und siehe da, es passt alles. Wenn ich nun die Widerstandswerte einzeln an den Pins des UTI messe, komme ich zu folgendem Ergebnis: E nach A: 2,2kOhm E nach B: 2,3kOhm E nach C: 2,3kOhm E nach D: 2,412kOhm E nach F: 2,412kOhm A nach B: 100Ohm A nach D: 212Ohm A nach F: 212Ohm
-
Thread
SDCARD Am Software SPI???
Hallo Ist es möglich an den Ports A0-A3 eine SD card Anzuschalten??? Port A0=CLK Port A1=CS Port A2=DI Port A3=DO wie schalte ich den Software SPI ??? Am Hardware SPI PortB hängt eine Nokia Display deswegen benötige ich
gehts gar nicht auch mit dem Beispiel Source von Ullrich Radig. SPI Mode auf 0 für Software SPI Port A0=CLK Port A1=CS Port A2=DI Port A3=DO Karte wird nicht gefunden. Habe wieder die SD an den Hardware SPI angeschlossen MOSI=B2 auf Display Eingabg und SDCard Pin 2 MISO=B3 nicht auf
-
Thread
PIC16F1455 treibt LCD nur mit angeschlossenem PICkit3
einem unbekannten Zustand sauber in den 4-Bit Mode zu setzen: https://www.avrfreaks.net/s/topic/a5C3l000000ULG2EAO/t095508 Ein nicht korrekt initialisiertes LCD erkennt man oft daran, daß die 2. Zeile schwarz ist.
(0b0011); RS=0; RW=0; send_nibble(0b0010);[/c] Meine send_nibble-Routine ist wiefolgt ausgelegt: [c] void send_nibble (unsigned char n) { D7 = (n >> 3) & 1; D6 = (n >> 2) & 1; D5 = (n >> 2) & 1; D4 = (n >> 0) & 1;
-
Thread
Grafik LCD am PortC geht am Port B nicht! atm8 & KS0108
was ich geändert habe ist, das umlöten der GLCD Pins: von PortC0 -> PortB0 von PortC1 -> PortB1 von PortC2 -> PortB2 von PortC3 -> PortB3 von PortC4 -> PortB4 von PortC5 -> PortB5 von PortC6 -> PortB6 natürlich auch die Verbindungen abermals
ihn so wie in diesem Schaltplan: http://www.scienceprog.com/wp-content/uploads/2007i/Glcd/GLCD_pins.png Es sind an Port C nur die CMD Pins des LCD angeschlossen! Die benötigen nur 5 Pins! PC0 bis PC4 Habe das Analog einfach von PB0 bis PB4 belegt, rest freigelassen... Port D blieb unverändert
-
Thread
[S] C64 im Bereich Berlin-Köpenick
Rechner nicht gut findet (obwohl man sehr gut mit DDT debuggen kann, MSBasic ist auch da, TurboPascal 3 auch. Ich hatte das Ding auf einem Steckbrett aufgebaut, "Massenspeicher" waren 2 x 64KB I2C-EEPROM [groesser waren die ersten Floppies auch nicht]). Mit so einem kleinen 10EUR-China-Logikanalysator
herankommt, die von der Hardware erzeugt wurden. Wenn er das begreifen würde, dann ist der Übergang zum µC nicht mehr besonders schwierig, dann müsste man ihn nur gleich mit 2..3 guten "C für µC" Büchern zuschmeißen. Die Dinger heute noch in Assembler programmieren... ich mag und mach das nur weil ich's vom
-
Thread
Raspberry GPIO Schaltung Taster und Relais
3V3 | 2k2 | .--langeleitung---------100R--o---10k---o-------µC-Pin |
Beitrag #7954089: >> Ab Modell B+ können die angeblich 500mA rausgeben: >> https://pinout.xyz/pinout/pin1_3v3_power/ > > verwechsel doch nicht doe Spanungsversorgung mit dem SoC Port. Ich verstehe nicht genau, was Du mit SoC Port meinst. Bitte erkläre das genauer. Für mich ist SoC = System On a
-
Thread
I2C mit USI - falsche LED bzw Port angesteuert
Hallo habe ein Problem mit I2C Bus zu USI mit Master und Slave. Versuche das Problem zu erklären Hardware Slave: - ATTIny 2313 - Port B als Ausgang mit 8 x LED - PIN PD0, PD1, PD2 Taster zur Eingabe - PIN PD3, PD4, PD5 3 x LED zur Anzeige Hardware Master: - Atmega 1284p - Port A als Ausgang mit 8 x LED - PIN PC4, PC3, PC2 Taster zur Eingabe Bedienung: Betätige am Master entweder Taster am PC2 oder PC4 und es leuuchten die LEDs am Slave Dabei verwende ich die Datein
-
Thread
mit Bascom über rs232 Frequenz aus einen Frequenzzählermodul auslesen.
Serialin = Buffered , Size = 20 Config Input = Cr Dim Char_buffer1(16) As String * 1 Dim Char_buffer2(16) As String * 1 Dim Contrast_wert As Byte bekomme ich beim compilieren eine Fehlermeldung Error : 103 Line : 16 = expected , in File : C:\Users\Berres\Desktop\swob5\Strichbreite3.bas
Jetzt werde ich als nächstes mal auf 115Kbaut umstellen und > Const To_wait_chars = 20 wieder auf 2 umstellen. Da würde ich 2 oder 3 versuchen und dafür die 5 hier vergrößern: > Const Init_timeout_preset = Wait_timeout * 5 Die 5 bestimmt wie lange gewartet wird von Impuls an den Zähler bis
-
Thread
ILI9486 8-Bit Parallel Bus deutlich langsamer als SPI
Applications" sogar auch "Serial to Parallel Data Conversion". Laut Datenblatt liegt fMax bei 4,5V bei 91 MHz und bei 2V bei 30MHz also bei 3,3V irgendwo bei ~50MHz oder so. Sollte für 18MHz SPI oder evtl. auch 36MHz SPI noch locker reichen. CS, D/C und WR bediene ich dann noch ganz normal über
: [c] #define WR_CYCLE CTRL_PORT->BRR = LCD_WR_Pin; \ CTRL_PORT->BSRR = LCD_WR_Pin; [/c]
-
Thread
LCD Routine Funktioniert nicht
Nun gut aber laut Anschlussplan werden DB0 bis DB3 am LCD nicht angeschlossen. Laut Plan habe ich es so angschlossen. DB4 -> PD0 uC DB5 -> PD1 uC DB6 -> PD2 uC DB7 -> PD3 uC RS -> PD4 uC E -> PD5 uC Aber die Initalisierung findet nur DB0
Marius schrieb im Beitrag #1886703: > Nun gut aber laut Anschlussplan werden DB0 bis DB3 am LCD nicht > angeschlossen. > Laut Plan habe ich es so angschlossen. > DB4 -> PD0 uC > DB5 -> PD1 uC > DB6 -> PD2 uC > DB7 -> PD3 uC > RS -> PD4 uC > E -> PD5 uC > > Aber die Initalisierung
-
Thread
Anfängerfragen in C
Fragen von einem Noob Port A soll z.b. auf x gespeichert werden 1.) Wie speichert man den gesamten Wert eines I/O Ports auf eine Variable in C ? 2.) Welcher Datentyp muss x sein? 3.) Wie kann ich den aktuellen Wert von
2. unsigned char 1. Ausgang: x=PORTy; Eingang: x=PINy; wobei y den Port angibt (Buchstabe von A bis H je nach Controller) 3.Guck ins Tutorium! In ein C-Buch. >if(x=128) then Lerne C! Und finde heraus
-
Thread
2-Dimensionales Array. Fehler. Läuft aber trotzdem ?
| Chip[73-1 ]<<3 | (bit)LED_H[Port], 2<<6 | Pin[73-1]-1 ); // dann High-LED ein/aus schalten if (LED_L[Port] != LED_L_alt[Port]) // Hat sich der Zustand geändert ? writeSlave24 (Port, 1<<6 | Chip[74-1 ]<<3 | (bit)LED_L[Port], 2<<6 | Pin[74-1]-1 ); // dann Low-LED ein/aus schalten LED_H_alt[Port] = LED_H[Port]; // Zustand merken LED_L_alt
-
Thread
Neuling: Latch Signal an Spielekonsole auslesen
Mann kann doch auch in der Arduino IDE den Pin in "normalem" C abfragen, oder? [c] void loop() { if(PIND & (1 << PIND3)) //Wenn PinD3 gesetzt ist { Serial.println("Latch"); } } [/c]
Grad gesehen, dass nur Pin2 und Pin3 als externe Interruptquelle funktionieren. Bau doch den Aufbau und das Programm mal entsprechend um (also Clock an Pin2).
-
Thread
Kann ich das noch retten? Pins gegen GND als Schalter lesen
Also muß ich es so reinprogrammieren? Habe ich das richtig verstanden? [c] // Damit sind es Eingänge ... DDRE = ( 0<<DDE2 | 0<<DDE3 | 0<<DDE4 | 0<<DDE5 | 0<<DDE6 | 0<<DDE7); // Damit sind diese interner Pull-Up-Widerstände aktiv... PORTE = (1<<PE2) | (1<<PE3)
Erich wrote: > [c] > if (PINE2 == 1) { > [/c] Meiner Meinung nach kann das so nicht funzen. Du prüfst entweder einen einzelnen PIN so: [c] if (PINE & (1<<PE2)) // PE2 gesetzt? [/c] oder ein reihe von
-
Thread
Große 7-Segment Anzeige
Hardware mäßig ist es ratz fatz. Aber Software mäßig habe ich dann mehr Aufwand. Weil wenn ich auf ein Port machen würde könnte ich ganz einfach so ansteuern: currentSeg1 = pgm_read_byte(&c_led[5]); currentSeg2 = pgm_read_byte(&c_led[1]); currentSeg3 = pgm_read_byte(&c_led[4]); Dann würde es mit
uint8_t segmente; segmente=pgm_read_byte(&c_led[5]); PORTD = (PORTD & (3)) | (segmente & ~3); // Bits 2..7 in PORTD kopieren PORTB = (PORTB & ~(3)) | (segmente & 3); // Bits 0..1 in PORTB kopieren [/c] MfG Falk
-
Thread
EADOGM162W-A-Anzeige mit XMEGA
#include <avr/io.h> #include <util/delay.h> // Define LCD pins #define LCD_E PIN0_bm // Enable (PC0) #define LCD_RS PIN1_bm // Register Select (PC1) #define LCD_D4 PIN3_bm // Data Bit 4 (PC3) #define LCD_D5 PIN2_bm // Data Bit 5 (PC2) #define
Du das auch wirklich so ("ungewöhnlich") verschaltet? #define LCD_D4 PIN3_bm // Data Bit 4 (PC3) #define LCD_D5 PIN2_bm // Data Bit 5 (PC2) #define LCD_D6 PIN5_bm // Data Bit 6 (PC5) #define LCD_D7 PIN4_bm // Data Bit 7 (PC4)
-
Thread
STM32 Port-Initialisierung
Hallo zusammen, Ich habe folgende Fragen an euch: 1) Kann man jedes Pin eines Ports verschieden definieren? 2) Kann man beliebig im Code die Pin-Definition eines Ports nachträglich ändern? 3) Kann man auch Timer-Definition im Code nachträglich ändern? Natürlich werden
>1) Kann man jedes Pin eines Ports verschieden definieren? Was meinst du damit? >2) Kann man beliebig im Code die Pin-Definition eines Ports nachträglich >ändern? Ja. >3) Kann man auch Timer-Definition im Code
-
Thread
Neues Terminal-Programm für Windows
ahh du schon wieder Wolfram =) 1. Takt ist 32MHz 2. Baud hab ich zur Zeit auf 38400, werd ich mal runtersetzen 3. mit Flusssteuerung hab ich noch nie gearbeitet =>muss diese auch am uC initialisiert werden, oder macht das nur das Hterm Programm? 4
durchgeführt. z.B.: Channel1 (2 Byte) = Channel1 * 5 / 1023 Channel2 (2 Byte) = Channel2 * 5 / 1023 Channel3 (2 Byte) = Channel3 * 5 / 1023 In der Ausgabe könnte es dann wie folgt aussehen: Spannungen: 1,44V 1,27V 3,16V
-
Thread
Encoder macht zu viele Schritte
(Notation ist 7,6,5,4,3,2,1,0 also genau umgekert) DDRE = 0b00010111; // PORT C als Ausgang/Eingang sei(); // für Interrupts beep_short(); // Initialisierung quitten // LC Display
i |= 2; switch( i ){ case 0: PORTB = 1; break; case 1: PORTB = 2; break; case 3: PORTB = 4; break; case 2: PORTB = 8; break; } } } [/c] Dann mußt Du ein Lauflicht
-
Thread
Bluetooth-Modem HB300 bei Pollin
PCM_OUT 18 GND GND Pin 1 (beim BTM = PIO_8) liegt bei "unserem" Modul aber auf GND. J2 hat sehr wahrscheinlich folgende Belegung: 1 GND 2 SPI_MISO 3 SPI_CSB 4 SPI_CLK 5 SPI_MOSI 6 Vcc 3,3V
Endlich sind meine da, gleich mal das Multimeter gezückt, Zu J2: Pin 1 und 6 sind definitiv GND und 3,3V Pin 2 (MISO) liegt auf 0V Pin 3 (CSB) wird sanft auf 3,3V gezogen Rp > 1MΩ Pin 4 (CLK) und 5 (MOSI) floaten Wenn ich bei meiner Maschine (P4 mit 845er
-
Thread
AtMega8 2. ADC benutzen
will mit meinem AtMega8 (fertig verschalten auf dem Experimentierboard von myAVR) eine Spannung von 0-5V messen. Das ganze lief auch Anfangs über den ADC0 des µC ganz gut, nur habe ich den Fehler gemacht die Schaltspitzen meiner Spannung außer acht zu lassen, diese haben meinen ADC-Pin zerstören. Mittlerweile
= 1; //B.0 als Ausgang ddrB.bit1 = 1; //B.1 als Ausgang ddrC.bit1 = 0; //C.1 auf Eingang portC.bit1 = 0; //C.1 ohne Pull-Up spannungmesser.config(0); konsole.config(9600); wert=0; } public: void
-
Thread
ADC-Pin auch als Digital-Pin benutzen
. Solange die Spannung nur vermindert wurde, also 4,2V -> 2,7V, stimmten die Werte. Sobald es aber wieder nach oben ging (2,7 -> 4,2), zeigten die Werte ab ca. 3V den max. Wert von 0x3FF an. Die Lösung: 1. Widerstaende verkleinern. 2. Vor der Messung
// k =8 adc_value = tmp / 1000L; adc_tmp = adc_value; } if (adc_value <= VOLT_3p0) cam_status.low_battery = true; if (cam_status.low_battery) { if (adc_value > VOLT_3p2) cam_status.low_battery = false; } } [/c]
-
Thread
Brauche Hilfe bei Schaltplan
nicht realisiert. Am Schieberegister1 sind 5 LEDs ( 1 + 2 + 4 + 8 + 16 = 31 > 24 ) und an Schieberegister2 und 3 sind 6 LEDs ( 1 + 2 + 4 + 8 + 16 + 32 = 63 > 60 ), daher reichen die LEDs. Nico wrote: >Wieviel strom brauchen deine ultra-hellen
hat sich ebenfalls geändert, der Basiswiderstand beträgt 10kOhm. Ich habe an Port C den 3. Pin absichtlich frei gelassen, er soll später an den G-Pin der 595s.
-
Thread
Schnelle µC <-> µC Schnittstelle
abzuhorchen. Falls die Geschwindigkeit des UART's nicht ausreicht, dann SPI oder parallel per normaler IO Ports und einem eigenen, spezifischen Protokoll. Wenn mehr als zwei uC's zusammen geschaltet werden sollen, dann bietet sich I2C an, wobei dann die uC's vorteilsweise die I2C Schnittstelle bereits als Hardware
funkzioniert es seit 8 Jahren tadellos. (µCs: Dallas 80C320 u. Atmel 89C5x) Karoly
-
Thread
LCD zeigt nichts an
&= ~(0xF0 >> (4 - LCD_DB1)); //obere 4 Bit maskieren LCD_PORT &= ~(0xF0 >> (4 - LCD_DB2)); //Maske löschen LCD_PORT &= ~(0xF0 >> (4 - LCD_DB3)); LCD_PORT &= ~(0xF0 >> (4 - LCD_DB4)); LCD_PORT &= ~(0xF0 >> (4 - LCD_DB5)); LCD_PORT &= ~(0xF0 >> (4 - LCD_DB6)); LCD_PORT &= ~(0xF0 >> (4 - LCD_DB7)); LCD_PORT &= (data >> (4 - LCD_DB1)); //Bits setezn LCD_PORT &= (data >> (4 - LCD_DB2)); LCD_PORT &= (data >> (4 - LCD_DB3)); LCD_PORT &= (data >> (4 - LCD_DB4
-
Thread
GCC Optimierung killt Funktion
DMA Abarbeitung. Ich denke es lohnt sich, das mal anzuschauen. Viele Grüße und schönes WE. [c] bool L3GD20_test2(void) { uint8_t cmd[2] = { 0x8f, 0x00 }; uint8_t data[2]; SPI1_CS_GPIO_Port->BRR = SPI1_CS_Pin; // HAL_GPIO_WritePin(SPI1_CS_GPIO_Port, SPI1_CS_Pin, GPIO_PIN_RESET
->DR; while((SPI1->SR & SPI_SR_BSY) != 0); // HAL_SPI_TransmitReceive(&hspi1, cmd, data, 2, 100); __DSB(); SPI1_CS_GPIO_Port->BSRR = SPI1_CS_Pin; // HAL_GPIO_WritePin(SPI1_CS_GPIO_Port, SPI1_CS_Pin, GPIO_PIN_SET); return (data[1] == 0xd4) ? true : false; } [/c]
-
Thread
Einsteiger Hilfe zu PIC PIC16F628A
Lauflichtprogramme für PIC16 in ASM: ; David Tait (david.tait@man.ac.uk) ; PROCESSOR 16C54 ;COULD BE ANY 16C5X __CONFIG 0FH ;RC OSC, WATCHDOG ; PORTB EQU 6 STATUS EQU 3 CARRY EQU 0 NOT_TO EQU 4 RFLG EQU 8 ;GO RIGHT FLAG
/production/ggg.X.production.hex make[2]: Entering directory 'C:/Users/Sebastian/Downloads/ggg.X' make[2]: *** [build/default/production/newAsmTemplate.o] Error 1 "C:\Program Files (x86)\Microchip\MPLABX\v3.00\mpasmx\mpasmx.exe" -q -p16f628a
-
Thread
Raspi real time pin toggle
/c] Ergebnis ~3.6MHz
etwas von 200MHz bei der PRU. > Das würde bedeuten, daß Du in C schneller bist als die CPU, oder aber es > einen Befehl gibt, der im Systemtakt den Pin togglet. Eine Instruktion dauert 5 ns. Kein Cache etc. Zu etwa 2 Dutzend I/O-Pins hat die PRU Direktzugang
-
Thread
I2C Übertragung ziemlich fehlerhaft
UCB0CTL0 = UCMODE_3 + UCSYNC; // I2C Slave, synchronous mode UCB0I2COA = 0x48; // Own Address is 048h UCB0CTL1 &= ~UCSWRST; // Clear SW reset, resume operation
(void) { WDTCTL = WDTPW | WDTHOLD; // Stop WDT P3SEL |= 0x03; // Assign I2C pins to USCI_B0 // P3DIR |= 0x03; UCB0CTL1 |= UCSWRST; // Enable SW reset UCB0CTL0 = UCMST | UCMODE_3 | UCSYNC; /
-
Thread
Modbus RTU Slave fuer AVR
TRANSCEIVER_ENABLE_PORT PORTD #define TRANSCEIVER_ENABLE_PIN 2 #define TRANSCEIVER_ENABLE_PORT_DDR DDRD Das musst du dann noch auf irgendeinen anderen freien Pin deiner Wahl umkonfigurieren und die beiden RXdisable/TXenable
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
myAVR PORT Expander
sorry, muss twiWriteByte(0x02+port&1,1); // Kommandoregister 2/3 -> Output P0/P1 heißen
( i == 4 ) { eff_port = s_Effekt[3];} // Kanal A4 if ( i == 5 ) { eff_port = s_Effekt[4];} // Kanal A5 if ( i == 6 ) { eff_port = s_Effekt[5];} // Kanal A6 if (
-
Thread
LCD Atmega8535 fehler beim Programm erstellen mit AVR-Studio
So habe ich das LCD verdrahtet: Pin #-LCD Bezeichnung-LCD Pin-μC 1 Vss GND 2 Vcc 5V 3 Vee GND 4 RS PD4 am AVR 5 RW GND 6
#define LCD_DATA2_PORT LCD_PORT /**< port for 4bit data bit 2 */ #define LCD_DATA3_PORT LCD_PORT /**< port for 4bit data bit 3 */ #define LCD_DATA0_PIN 0 /**< pin for 4bit data bit 0 */ #
-
Thread
2 RaspberryPis über Bluetooth koppeln
, nur PI stimmt also nicht und wenn schon Treiber dabei sind > gehen auch Porterweiterungen über I2C & SPI. Die Motoren sind jeweils mit einem kleinen Board verbunden. Vom Board gehen 6 Drähte. 2 Sind GND und +5V. Die 4 restlichen muss man mit den GPIOs vom RaspberryPi verbinden. Zeno schrieb
Protokoll > zwischen den zweien vereinbaren! > Gruß Rainer Die GPIOs sind bereits so verbunden: GPIOs 2,3,7,8 vom PI 1(Raspberry Pi 3) sind mit den GPIOs 2,3,7,8 vom PI 2 (Raspberry Pi 4) verbunden. Drück ich jetzt auf den Button für den 1. Motor auf dem 2. PI, werden z.B. an den GPIOs 2 und 3 eine logische
-
Thread
Probleme mit RC5 C- Code
Ich lasse in der Mainschleife ein paar Flanken erzeugen, um überhaupt zu gucken ob der uC reagiert, doch leider tut sich an den Ausgängen nichts. FCPU habe ich auch in der RC5 schon definiert! Muss ich den Pin PD2 noch als eingang setzten? Im Original Thread steht " der INT port wird
Init DDRB = 0b11111111; DDRD &= ~(1<<PD2); // eingang fuer TSOP-DATA //PORTD |= (1<<PD2); // Pull Up /* der ensprechende INT-Port muss INPUT sein */ /* RC5 initialisieren, alle Adressen zulassen */ rc5_init (RC5_ALL
-
Thread
AVR zeitweise vom I2C abschalten
Wie schalte ich am besten ein Baustein zeitweise vom I2C (TWI) Bus ab . Reed Relais ? CD4066 ? Hintergrund ist folgender: Am I2C Bau hängt auch ein Mega8 als Slave , dieser ist aber nicht immer aktiv bzw. fehlt im Zeitweise die Versorgungsspannung
gehen aber die bekommt man doch alle nicht so eben mal 2, 3 Stück Gruß HansHans
-
Thread
DIP162 2x16 LCD Display von Conrad + Fleury
/**< port for 4bit data bit 1 */ #define LCD_DATA2_PORT LCD_PORT /**< port for 4bit data bit 2 */ #define LCD_DATA3_PORT LCD_PORT /**< port for 4bit data bit 3 */ #define LCD_DATA0_PIN 4 /**< pin for 4bit data bit 0 */ #define LCD_DATA1_PIN 5 /**< pin for 4bit data bit 1 */ #define LCD_DATA2_PIN 6 /**< pin for 4bit data bit 2 */ #define LCD_DATA3_PIN 7
-
Thread
stm32f103c8 lässt sic nich flashen
Habe dieses board - http://www.ebay.de/itm/1-2-5-10Stks-STM32F103C8T6-ARM-STM32-Minimum-System-Development-Board-Module-/272425764978?var=&hash=item3f6dd74872:m:mrAOyKktZjIFkrwmEnoO1Mg - vergeblich versucht mittels St-Link V2 zu flashen. Fehlermeldung
(GPIO, x) #define PORTA 0 #define PORTB 1 #define PORTC 2 #define PORTD 3 #define PORT(x) GLUE(PORT, x) #define pinDIRout(port,pin) {*(uint32_t*)(GPIOA_BASE + PORT(port) *0x400 + (pin/8)*4)&=~(0b1111<<(4*(pin%8)));*(uint32_t*)(GPIOA_BASE + PORT
-
Thread
16 UARTs für MIDI
Seriennummer auch auf den "Pfad" matchen, über den das Device angeschlossen ist, also z.B. Hub1 Port 3 -> Hub2 Port 2 -> CH348 ==> /dev/midi10
Ausgänge, die auf einen Bereich der Tastatur höhren, unabhängig von den anderen. Damit kann ich z.B. 3 Keyboards definieren von denen das 1. die linke Hand nimmt bis z.B. C3, das 3. die rechte ab C3 und die 2. beide schnappt von z.C. C1 ... C4. Man kann zB. auch programmieren dass C1 ... C2 auf einen