-
Thread
Es geht einfachnicht in meinen Kopf rein.
kann was ich mir erwünscht hatte. Ich wollte gerne 8 Bit in einem Register zusammensetzen. PD5 Bit 8 PD4 Bit 7 PC5 Bit 6 PC4 Bit 5 PC3 Bit 4 PC2 Bit 3 PC1 Bit 2 PC0 Bit 1 So dachte ich es ginge auch sbr r16,(1<<PD5) + (1<<PD4) + (1<<PC5) u.s.w.
eProfi schrieb im Beitrag #2942739: > in r16, PORTC ; 1 > andi r16,0x3f //kann evtl. entfallen ; 1 > sbic PortD,4 ;skip, wenn das Bit 0 im Port gelöscht ist ; 1 oder 2 > sbi r16,6 ; 0 oder 2 => 2 oder 3 Takte für sbic und sbi > sbic PortD,5 ;skip, wenn das Bit 0
-
Thread
Einsteigerfragen
vor einigen wochen so mit denn Microntroller angefangen: 1.hab mir ein testboard gebastelt! Die Ports führen zu Wannenstecker, danc hmit flachbandkabel auf eine separte platine (z.b. mit 8 leds) so kann ich die ports bzw. pins indivieduell nutzen! 2.AVR-studio 4 runtegeladen 3. ISP-programmer
ACTION=3;LA=444;GROUP=A363;GROUPID=2959;ARTICLE=45028;START=0;SORT=artnr;OFFSET=16;SID=26Ev124KwQARoAAHbBi304c932238bf8c99abcb5bd5d598d0fcf0 Die Zahl nach dem L bzw. nach dem Bindestrich gibt immer die maximale
-
Thread
ENC28J60 Basics[Beispielprogramm in AVRGCC für atmega8]
ENC_MAX_FRLEN) ; maximale Framelänge .db MAMXFLH,high(ENC_MAX_FRLEN) .db MABBIPG,$12 ; Handbuch 6.5 Seite 36 .db MAIPGL,$12 ; Handbuch 6.5 Seite 36 .db MAIPGH,$0C ; Handbuch 6.5 Seite 36 .db MAADR1,MAC_ADR5 ; MAC-Adress Byte 0 .db MAADR2,MAC_ADR4 ; Byteswap! .db MAADR3
programmiert, wenn ich den enc28j60 direkt mit dem computer verbinde hab ich eine response time von 3 - 5ms . wenn ich allerdings 4 computer und den enc28j60 an ein hub anschliesse dann habe ich die besagten 5 -25ms. ich benutze keinen AtMega sondern einen AT89C51ED2 und da es ein testaufbau mit teilweise
-
Thread
Pointer auf PORT oder bessere Lösung
Tom wrote: > > Dagegen hab ich einen heiligen Grahl gesucht ;) > Hmm. [C] volatile uint8_t* LampPorts[] = { &PORTA, &PORTH, &PORTC, &PORTA, &PORTE }; volatile uint8_t LampPins[] = { 1<<PA0, 1<<PH1, 1<<PC5, 1<<PA4, 1<<PE4 }; void lampe_on (int n) { *(LampPorts[n
Da du hier im GCC-Forum bist, mal in der Syntax vom AVR-GCC. Ich vermute, du suchst sowas: [c] #include <avr/io.h> #define LAMPE1 PORTA, 0 #define LAMPE2 PORTB, 2 #define LAMPE3 PORTC, 5 #define ON 1 #define OFF 0 #define LAMPE_SWITCH_int(port, bit, onoff) \ if (onoff) { (port
-
Thread
Auslesen von 48 Tastern mit AVR
CL2 ist über S2+S1+S5 mit RA2 verbunden. Also: RA2 als Ausgang = 0, RA1, RA3, RA4 Eingang / CL1-CL4 <= 0011.
auswertbar sein. Viel Spaß beim schreiben der Entprellroutine ... Beim Matrixdesign sind es aktuell 3,5 Tasten pro Pin. Bei 100 Tasten in einer 10x10 Matrix wären es 5 Tasten pro Pin. (Oder 5 Pins weniger) Dein Vorschlag lohnt sich also wirklich gar nicht. > 6 + 8 Port-Pins Warum nicht 7
-
Thread
LED-Cube Effekte weiter per Knopfdruck
Hallo Frank, danke schon mal für die Antwort. Nun ist es aber so, dass ich Pin 2,3,4,5,6,7,8,9 für die Kathoden Ansteuerung nutze. Aso ist die Anleitung oben ja nicht ausführbar oder? So wie ich das sehe wird ja in diesem Teil die einzelnen Effekte aufgerufen: [c] void loop
; uint8_t port = digitalPinToPort(pin); uint8_t slot; volatile uint8_t *pcmask; // map pin to PCIR register if (port == NOT_A_PORT) { return; } else { port -= 2; pcmask = port_to_pcmask
-
Thread
7 Segmentanzeige falsch eingekauft, reagiert nur auf low.
alle gleichzeitig leuchten würden. Dazu schaltet man die Segmentleitungen aller Anzeigen (also a,b,c,d,e,f und ggf. auch dp) parallel und schließt sie über Vorwiderstände 330 Ohm an einem Port mit 7 oder 8 Portpins an. Das wäre bei Deinem Mega8 der PortD, da PortB und PortC keine volle 8 Bit Breite
.equ zehnerport=portd ;Port Anode 2 (mitte / Zehner) .equ zehnerbit=pd6 ;Portbit Anode 2 (mitte / Zehner) .equ hunderterport=portd;Port Anode 3 (links / Hunderter) .equ hunderterbit=pd3 ;Portbit Anode 2 (links / Hunderter
-
Thread
2 Byte Variablen für 8Bit PIC aus und einlesen mit Pic-as oder mpasm-Assembler
Assembler-Code sehen!? Dann muss man das selber schreiben. Nachtrag: > > [c] > 88: { > 89: dutyValue <<= 6; > 00E1 3006 MOVLW 0x6 > 00E2 0140 MOVLB 0x0 > 00E3 35A0 LSLF __pcstackBANK0, F > 00E4 0DA1 RLF 0x21, F > 00E5
T2CKPOL Rising Edge // T2CKSYNC Not Sync CLRF T2RST ; T2RSEL T2CKIPPS pin MOVLW 0x7C ; PR2 124 2Khz PWM-Frequenz MOVWF T2PR CLRF
-
Thread
Analogsignal auf AVR
möglich) oder: Eingang PB3 0-5V dabei wird ein eingeschalten 1V PB0, 2V PB1, 3V PB2, 4V PB4 Wie muss ich das mit C realisierien?
DDRB = 0b00111111; // Pin 3 = Eingang PORTB = 0b00001000; // Pin 4 = LOW ADMUX=0x02; // PortB4 = ADC2 = Analog Eingang ADCSRB=0x00; ADCSRA=0x84; // ADEN =1 / Prescaler = 16 int value;
-
Thread
Controller am IO-Pin eines anderen betreiben.
zusammenbricht. Klingt nach gewaltigem Designmangel. Stützkondensatoren helfen nicht? Der Tiny13 hat 5IOs ohne Reset. Du hast 6 Verbraucher. Einer davon kann von µC 1 geschaltet werden, bleiben also 5 übrig. Der Tiny13 muss wissen, wann µC 1 schaltet, benötigt einen Pin, bleiben 4. Wie sollen nun mit
Tage); Schalte2; _delay_ms(3 Tage); Schalte3; _delay_ms(3 Tage); Schalte4; _delay_ms(3 Tage); Schalte5; while(ewig); } [/c] mfg.
-
Thread
LED Matrix und 4 Gewinnt
S2 - PA4 S3 - PA5 Kathode Rot/Grün Z1 - PB0 Z2 - PB1 Z3 - PB2 [/code] Ich habe angefangen zu programmieren in C. Bin noch nicht so weit gekommen. [c] #include <avr/io.h> #define Port_Spalt
/delay.h> #include <avr/interrupt.h> #define Port_Zeile PORTD #define Z1 PD0 #define Z2 PD1 #define Z3 PD2 #define Z4 PD3 #define Z5 PD4 #define Z6 PD5 #define Z7 PD6 #define Port_Spalt
-
Thread
2 Bytes (int) struct korrekt so?
Michal schrieb: > Und ich kann die Pins beim Device-Wechsel schneller anpassen. Gut, das ist ein Argument. Aber dann schreibs wenigstens so [C] PORTB &= ~( ( 1 << PB1 ) | ( 1 << PB2 ) | ( 1 << PB3 ) | ( 1 << PB4 ) | ( 1 << PB5 )
Structs von einer 16-Bits-Varlablen setzte und in eine 16-Bits-Variable einlese: Setzen: /c unsigned SentVector; PORTB &= ~( ( 1 << PB1 ) | ( 1 << PB2 ) | ( 1 << PB3 ) | ( 1 << PB4 ) | ( 1 << PB5 ) ); if ( SentVector & 0b1000000000000000 ) PORTB |= ( 1 << PB1 ); if ( SentVector & 0b0100000000000000
-
Thread
ESP32 : 1-2nF messen
dem Schluss gekommen dass folgende Minimal-Schaltung theoretisch funktionieren sollte: IOx (GND/3.3V) | | R 5M | \ -- ADC / | C XnF | GND Bitte korrigiert mich (alles gerundete Werte): Über das RC-Glied sollte mit einer Zeitkonstante von 5-10ms nach 25-50ms den Kondensator vollständig
funktionieren ohne weitere externe Bauteile, richtig? Wenn ich 1M für R nehme hätte ich nach 1ms etwa 2,3V (C=0,9nF) bzw 1,6V (C=1,5nF), richtig? Hört sich machbar an... Gruss Gerd
-
Thread
Atmega8 PORTD7 Problem
(prx) A. K. schrieb im Beitrag #7104674: > Sind beim Mega8 beide GND und beide VCC Pins angeschlossen? Du meinst alle 3, es gibt noch AVCC, der wird unter anderem für Bit 0-3 von Port C verwendet. Aber bei der kaputten Flanke tippe ich auf ein falsch gesetztes DDR, so dass nur zwischen
Hmmm schrieb im Beitrag #7104676: > Du meinst alle 3, es gibt noch AVCC, der wird unter anderem für Bit 0-3 > von Port C verwendet. Ja. Je nach Gehäuse gibt es 2 oder 3.
-
Thread
Fehlerfindung Laptop Motherboard
3,3V Pin 2: 5V Pin 3 (zum Lüfter Plus): 0V und beim einschalten wie gesagt schlagartig 0,5. um dann langsam wieder runter auf 0,1V zu sinken.
VFAN1 kommt vom Keyboard Controller. Unter U16 steht FANPWR=1,6*VSET: Also müßte VFAN1 bis etwa 3,3V steigen, damit VO 5V erreicht. Warum ist Pin4 eigentlich nicht gemessen worden? D.h., damit der Lüfter auf Vollgas läuft, sollten an PIN1 nix, an PIN2 5V und an PIN4 irgendwas um die 3,3V anstehen
-
Thread
Grafikfähiger LCD Controller für 320x240 LCD mit D-RAM
ich anhand des klasse Adapterfotos von Ralf-Peter gut ablesen und auf dem Brett nachbilden: 1 = +5V 2, 9, 14, 16, 24 = GND 3 = Vee 4 = FLM = PB1 5 = Display off = PB0 6 = M/AC = PB7 7 = LOAD = PB5 8 = CP = PD5 10 - 13 = D0 - D3 15, 22 = NC 17 - 20 = Touch 0 - 3 21, 23 = Belecuhtung +
1 = +5V 2, 9, 14, 16, 24 = GND 3 = Vee 4 = FLM = PB1 5 = Display off = PB0 6 = M/AC = PB7 7 = LOAD = PB5 8 = CP = PD5 10 - 13 = D0 - D3 15, 22 = NC 17 - 20 = Touch 0 - 3 21, 23 = Beleuchtung +
-
Thread
ATmega32 läuft nicht richtig an
(LCD_DATA1_PIN == 1) && (LCD_DATA2_PIN == 2) && (LCD_DATA3_PIN == 3) && (LCD_RS_PIN == 4 ) && (LCD_RW_PIN == 5) && (LCD_E_PIN == 6 ) ) { /* configure all port bits as output (all LCD lines on
(LCD_E_PIN); DDR(LCD_DATA0_PORT) |= _BV(LCD_DATA0_PIN); DDR(LCD_DATA1_PORT) |= _BV(LCD_DATA1_PIN); DDR(LCD_DATA2_PORT) |= _BV(LCD_DATA2_PIN); DDR(LCD_DATA3_PORT) |= _BV(LCD_DATA3
-
Thread
STM32 USB Übertragungsproblem mit Code von S.F.
0x1FF800D0 // STM32L1 Cat.3,Cat.4,Cat.5,Cat.6 [/c]
:1:025:2 -115 1 = 6f "o" ffff9ea3abec8a80 3590089993 S Bo:1:025:2 -115 1 = 20 " " ffff9ea3abec86c0 3590089995 S Bo:1:025:2 -115 1 = 57 "W" ffff9ea340ba0480 3590089996 S Bo:1:025:2 -115 1 = 6f "o" ffff9ea340ba0c00
-
Thread
PIC 16f628a C
ein freie Byte in RAM char b; // Variable b irgend ein freie Byte in RAM char c @ 0xD; // Variable c ist Byte 14(D hex) in RAM TRISB = 0b.0000.0000; // Alle Pins des Ports B sind Ausgänge a=7; // "a" wird Wert 7 zugewiesen b=5; // "b" wird Wert
b; // Variable b irgend ein freie Byte in RAM unsigned char c; // Variable c ist Byte 14(D hex) in RAM TRISB = 0; // Alle Pins des Ports B sind Ausgänge a = 7; // "a" wird Wert 7 zugewiesen b = 5; //
-
Thread
STM32L4 I2C slave interrupt transmit
_GPIO_Port, &GPIO_InitStruct); } /* USER CODE BEGIN 4 */ void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c1) { /* Toggle LED2: Transfer in reception process is correct */ HAL_GPIO_TogglePin
. Für das empfangen von Daten bedeutet das, dass folgenden Aufrufreihenfolge nötig ist 1. HAL_I2C_EnableListen_IT 2. Der Master sendet die Nachricht 3. HAL_I2C_AddrCallback kommt: Dort HAL_I2C_Slave_Receive_IT aufrufen 4. HAL_I2C_SlaveRxCpltCallback 5. HAL_I2C_ListenCpltCallback Achtung:
-
Thread
ATtiny44 über IR-Signal aufwecken
. Normalerweise sind dafür ja C3, C2, C1 zuständig. Die habe ich allerdings schon auf 0 gesetzt und trotzdem seh ich noch schwarze Balken im Display. [c] void dogm_init(void) { dogm_port_init(); // initialize ports
(0, 0x70); // Kontrast C3, C2, C1 setzen _delay_us(7.5); // 30us delay dogm_write_check(0, 0x0C); // Display ein, Cursor aus, Cursor blinken aus _delay_us(7.5); // 30us delay
-
Thread
Port Pin direkt ansteuern via Bitfeld?
Hallo ich habe folgendes Problem: Ich würde gerne meine I/O's direkt vie Pin-Befehl ansteuern. BSP: IO.PRD.BIT.B0 = 1; Ich arbeite gerade mit dem Attiny 2313 und aus dem Datenblatt habe ich die Adresse für das Register DDRD entnommen (0x11) Ich habe folgendes Bitfeld aufgesetzt: [c] struct st_io { /* struct IO */ union { /* PRD */ unsigned char BYTE; /* Byte Access */ struct { /* Bit Access
-
Thread
PIC Entwicklungsboard Eigenbau
Bisher brauchte ich für jedes Projekt einen anderen PIC. Der eine hat kein USB, der andere kein I2C, der dritte kein EEPROM, der vierte kann bei 3,3Volt nur 1MHz.... Früher hatten die PICs einheitliche PIN-Belegung. Man brauchte nur eine Platine mit 3 Fassungen. Geht heute auch nicht mehr.
habe ich mir vor Jahren auf einer Lochraster Europaplatine mit einem 16F877 zusammen gelötet. Alle Ports auf 10 Pin Pfostenstecker (also mit 5V und GND). Hab das Teil dann bald in die Ecke gepfeffert da ich hier die AVR kennengelernt habe (billige Flash µC mit kostenlosem C-Compiler – das war neu). Das
-
Thread
LCD weigert sich seine Pflicht zu tun
Also gut, da will ich mal sehen: Pin 1 an Masse Pin 2 an +5V Pin 3 an den Schleifer eines 10K-Potentiometers eine Seite des Potis an Masse die andere an +5V (zur Kontrasteinstellung) Pin 4 an PortD.2 Pin 5 an PortD.1 Pin 6 an PortD.3 Pin 7 bis 11 freilassen Pin 12 an PortD.4 Pin 13 an PortD.5 Pin 14 an PortD.6 Pin 15 an PortD.7 Da dieses Display 2 Controller hat, hat es auch 2 Enable-Eingänge (E1 und E2) Im Moment ist jetzt
-
Thread
Atmega8A: loop über Ports/Pins funktioniert nicht
Mal eben" ist jetzt zwei Tage her und ich bin ausreichend frustriert, um hier nachzufragen: m8a_Pin-Test.c funktioniert, m8a_Pin-Test2.c funktioniert nicht. Warum? Hintergrund: Ich hatte die Idee einen Array für die Port-Pins anzulegen und in der Timer-ISR über die einzelnen Pins zu gehen und
_BV(PB0) }, ... [/c] und dann in der ISR: [c] const PinDesc *pin = &testPins[currentPin]; ... *(pin->ddr) |= pin->mask; // DDRx = 1 → output *(pin->port) &= ~pin->mask; // PORTx = 0 → drive
-
Thread
AVR Project – Relay Timer with ATmega8 AVR MCU
Ja die Ports und Pins stimmen soweit, nur bei [c] #define LS_BLINK 0B00000001 #define LS_ULINE 0B00000010 [/c] bin ich mir unsicher.
() LCDCmd(0b00000010); //geändert aud 0b00000000 [/c] ohne Erfolg. LCD.c [c] ... //Now the LCD is in 4-bit mode LCDCmd(0b00001100|style); //geändert auf ohne |style LCDCmd(0b00101000); //function set 4-bit,2 line 5x7 dot format
-
Thread
PIC 18 mit 3V auf 5V and MOSFET
Moin zusammen, ich versuche mit einem PIC18F25J10 (Ausgang PortC.4) eine MOSFET zu schalten. Da der MOSFET (IRFBE30) erst bei 5 Volt voll durchsteuert, habe einen Pull-Up-Wiederstand zwischen µC-Ausgang und FET an +5V auf dem Board gelegt (s.h. Anhang). Laut Datenblatt
Made Mueller schrieb im Beitrag #2092268: > Kann mir jemand erklären, was hier passiert? Der Port ist offenbar nicht 5V-kompatibel. Der Strom fliesst durch die Schutzdiode ab. Miss mal nach, was bei dem 1K-Widerstand am Controller als Vcc anliegt, mit etwas "Glück" sind das dann 3,5V, d.h. der Controller
-
Thread
LM75 funktioniert nicht
/ Port C initialization // Func0=In Func1=In Func2=In Func3=In Func4=In Func5=In Func6=In Func7=In // State0=T State1=T State2=T State3=T State4=T State5=T State6=T State7=T PORTC=0x00; DDRC=0x00; // Port D initialization // Func0=In Func1=In Func2=In Func3=In Func4=In Func5=In Func6=In Func7=In // State0=T State1=T State2=T State3=T State4=T State5=T State6=T State7=T PORTD=0x00; DDRD=0x00; /
-
Thread
IR Empfänger mit Attiny85/45 funktioniert nie
Compiler sagen, was IN, was OUT sein soll, obwohl es mich wundert, woher der Compiler wissen soll, ob PortA, PortB, oder PortC gemeint sind. >> pinMode(4,OUTPUT); Relais??? >> pinMode(2,INPUT); IR-Receiver??? aber weiß das damit auch deine IR-Library?? >> case 0xFFA25D: digitalWrite(4,HIGH
denn der hat nur Port B0 bis PortB4 (PortB5 ist der Reset pin und ein Sonderfall. Stell das mal auf die richtigen Sachen um - also z.B. auf IRMP_BIT_NUMBER 4.
-
Thread
LCD Display zeigt nur 2 Striche stats Text (Atmega8)
Data, MSB 15 - - frei (siehe EA DIP122-5N) 16 - - frei (siehe EA DIP122-5N) 17 A - LED-Bel. + (RV erford.) 18 C - LED-Bel. - Verlötet. D4/D0 an Portd.0 D5/D1 an Portd.1 D6/D2 an Portd.2 D7/D3 an Portd.3 D8/D4 an Portd.4 E an Portd
(z.B. PORTD.2) LCD-Pin 5 (R/W) --> GND LCD-Pin 6 (E) --> an einen Pin des ATmega8 (z.B. PORTD.3) LCD-Pin 7 (D0) --> im 4-Bit Modus nach GND schalten LCD-Pin 8 (D1) --> im 4-Bit
-
Thread
"Überspannung" an PIC-Eingängen
Erfolg einen NPN-Transistor als Emitterfolger geschaltet verwendet. Den KolleKtor habe ich mit der 5 (oder 3,3) V Versorgung des Prozessors verbunden. Den Emitter an den Port führen und den Arbeitswiderstand nach GND legen. (Damit wird das LOW-Potential um die 0,5 V der Basis-Emitterstrecke niedriger
Damit wird sichergestellt, daß die Eingangsspannung am Pin RA2 nicht über die PIC-Versorgungsspannung 5,5V liegt. Deren Erhöhung wie bei einer Klemmdiode wird ebenfalls nicht erfolgen. Eine inverse Schottky vom Eingangspin RA2 nach Masse ist nicht erforderlich
-
Thread
Programmierbare Relaiskarte - Konfigurationsdaten Lesen/Speichern/Übertragen
OUT_PORT PORTC #define OUT_DDR DDRC #define OUT_1 PC0 #define OUT_2 PC1 #define OUT_3 PC2 #define OUT_4 PC3 #define OUT_5 PC4 #define OUT_6 PC5[/c] Zum testen habe
1) | (1 << OUT_2) | (1 << OUT_3) | (1 << OUT_4) | (1 << OUT_5) | (1 << OUT_6)); OUT_PORT |= ((1 << OUT_1) | (1 << OUT_2) | (1 << OUT_3) | (1 << OUT_4) | (1 << OUT_5) | (1 << OUT_6)); _delay_ms(1500); OUT_PORT
-
Thread
Welche ARM Modelle eignen sich für Anfänger?
breadboard taugliche, Evalboards mit Debugger (!), letzterer auch für beliebige andere LPC Arm uC verwendbar 2. Mit dem LPC1114FN28 und dem Lpc800 gibt es zwei DIP ICs 3. Es gibt zum LPCXPRESSO eine sehr gute, kostenlose (auf 512 Kb Binary beschränkt) und sofort funktionsfähige IDE auf Basis von
// PG 13 (green LED), PG 14 (red LED) PIN 128, 129 STM32F429ZIT6 GPIOG_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; // Port_G speed (2, 25, 50, 100 MHz) GPIOG_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
-
Thread
ATMega 8 über Arduino Software programmieren, technische Probleme
eine Fehlkonstruktion. Laut Datenblatt aller AVR darf die Spannung an sämtlichen I/O Pins nicht höher sein, als die Versorgungsspannung. 3,3V Versorgung und 5V Signale passen daher nicht zusammen.
Unterschied zwischen 3.3 und 5 V verursacht hat.
-
Thread
TFT_ILI9163C mit Arduino richtig verbinden
anschließen? Bei A0 steht: [c] DC or RS pin (3v3 level!) [/c] Also wäre da z.B. der Pin PC0 möglich? SCK müsste dann demnach an Pin PB5 angeschlossen werden? Könnt ihr da etwas Licht ins Dunkel bringen?
das Display zum laufen zu kriegen. Die Verbindungen sehen wie folgt aus: LCD / Board SCK / PB5 [SCK] SDA / PB3 [MOSI] A0 / PC0 RST / 3.3V (PD2) CS / PB2 [SS] Vcc / 3.3V RST hab ich an PD2 da mein Arduino nur einen 3.3V Ausgang hat. Programm sieht wie folgt aus: [c] void SPI_init(){
-
Thread
Atmega 328 Timer 2: Hilfe für Frequenzerzeugung
. [c] /* Startet oder stoppt den Timer 2 */ void Timer2Enable(bool stat) { /* OC2B Pin = INT 1 Pin (PD 3) OC2A Pin = MOSI Pin (PB 3) */ cli(); if (stat) { OCR2A = 50;
Christian J. schrieb im Beitrag #5783578: > Ja, es funzt,. mit 20.3 khz :-) Mein Fehler, für 40KHz am OC2A muss der Pin alle 12,5us toggeln, nicht alle 25us. Demzufolge muss OCR2A 99 und nicht 199 sein.
-
Thread
SSD1306/1309 Library zum Darstellen von Text auf OLED Displays
) PC3 // ----------------- I2C ----------------- // A4 (ADC4/SDAglb) PC4 #define PIN_SDA 4 //PC4 -> A4 // A5 (ADC5/SCLgrn) PC5 #define PIN_SCL 5 //PC5 -> A5 // D12 #elif
> Theoretisch müsste es aber auch mit deinem AVR funktionieren. Es funktioniert auch, auf den Pins D4 und D5. Also ist es eine SoftI2C-OLED-Lib
-
Thread
MachXO2 - Ausgang schwingt
Pinkonfiguration verschiedene Modis einstelle, z.B. Pullup/-down eingestellt. Das Bild ist mit LVCMOS33 auf Pin D1 "PL3B/PCLKC3_2" aufgenommen. Oszi ist ein HP54615B und Tastkopf PML711A (500MHz) von PMK. Ich kann andere Signale ohne Probleme messen, an diesen Teilen liegt es also nicht. Was muß ich tun
. Zuvor waren da 2.5V eingestellt, und da gibt es dann in den Port Assignments eine Möglichkeit für Slew Rate, die es bei 3.3V nicht mehr gibt. Fühl mich aber mit der 3.3V-Einstellung irgendwie wohler... Übrigens ändert
-
Thread
STM32F1 Brushless Motor Steuerung
(HALL_GPIO_CLK | RCC_APB2Periph_AFIO, ENABLE); GPIO_InitStructure.GPIO_Pin = H1_GPIO_PIN | H2_GPIO_PIN | H3_GPIO_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_Init(HALL_GPIO_PORT, &GPIO_InitStructure); /* Setup Hall Interrupt */ /* Connect EXTI0 Line to Hall1 GPIO Pin */ GPIO_EXTILineConfig(HALL_EXTI_PORT_SOURCE, HALL1_EXTI_PIN_SOURCE); GPIO_EXTILineConfig(HALL_EXTI_PORT_SOURCE, HALL2_EXTI_PIN_SOURCE); GPIO_EXTILineConfig(HALL_EXTI_PORT_SOURCE, HALL3_EXTI_PIN_SOURCE
-
Thread
STM32 und usart1/2 Initialisierung
* RCC_APB1Periph_USART2, RCC_APB1Periph_USART3, RCC_APB1Periph_USART4, * RCC_APB1Periph_USART5, RCC_APB1Periph_I2C1, RCC_APB1Periph_I2C2, * RCC_APB1Periph_USB, RCC_APB1Periph_CAN1, RCC_APB1Periph_BKP
= GPIO_Pin_5; GPIO_Init(GPIOD, &GPIO_InitStructure); /* Remap USART, as USART2 is used as alternate pins on PD5/6*/ GPIO_PinRemapConfig(GPIO_Remap_USART2, ENABLE); // USART initialize USART_ClockStructInit
-
Thread
AVR ATmega8TestBoard
programmieren? die ISP Stecker (10-polige Stecker) hat folgende Belegung: Beschreibung Pin Pin Beschreibung MOSI 1 2 VREF 3 4 GND RST 5 6 GND SCK 7 8 GND MISO 9 10 GND MISO MOSI und
das Problem sein?? zweite: egal was ich auf dem Controller lade (auf dem Atmega8) sind auf dem Pin 10 (PB7 XTAL2/TOSC2) immer 5V. bzw wenn ich von der Pin auf ein Pin von ULN2803A gehe oder direkt auf ein Pin von JP3 (BarGraf Anzeige) drauf setze leuchtet ein LED von BarGraf !! habe zum Beispeiel
-
Thread
Dynamische PIN Zuordnung
PIN Zuordnung würde ich softwareseitig (z.B per I2C) ansteuern wollen. Beispiel: Stecker Pin1 -> Anwendung A PB2 ; Anwendung B PB3 Stecker Pin2 -> Anwendung A PB3 ; Anwendung B PB4 Stecker Pin3 ->
Arrays". Du packst Deine Anschlusspins in ein Array und greifst je nach Anwendung drauf zu: [c] byte AnwendungA_Pins[]={PB2, PB3, PB4, PB5}; byte AnwendungB_Pins[]={PB3, PB4, PB5, PB6}; byte* Anwendungspin=AnwendungA_Pins; // oder Anwendungspin=AnwendungB_Pins; [/c] Zugreifen auf die Pins
-
Thread
STM32-407 DIY-MORE Doku?
BOOT1 ist offen. +5V kommen vom ST-LINK USB Modul und liefern die Versorgung für das Board. +3,3V liegen am Pin des ST-LINK USB Modules als Quelle an.
Erfolgsmeldung! [c] $ arm-none-eabi-gdb GNU gdb (GNU Tools for Arm Embedded Processors 8-2018-q4-major) 8.2.50.20181213-git Copyright (C) 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later
-
Thread
EA DOGL 128x64 will nicht
DDB7 #define DD_LGHT DDD2 #define DD_A0 DDD3 #define DD_RST DDD5 #define DD_CS DDD6 #define P_MOSI PB5 #define P_SCK PB7 #define P_LGHT PD2 #define P_A0 PD3 #define P_RST PD5
parallel oder seriell, ich habe gewählt seriell. Programmierumgebung: BASCOM version 2.0.7.5 Anschlüsse: CS1=PORTB.2, A0=PORTB.4, Si=PORTB.1, Sclk=PORTB.0, Rst=PORTB.3 Baudrate: 19200 Libs: glcdeadogm128x6.lbx, glcd.lbx, glcdsed.lbx Initialisierung: $40, $B0, $10, $A1, $C8, §A6, $2F
-
Thread
Linux und (immer noch) C
Helloworld“ im Embedded-Bereich ist nun mal die blinkende LED. Für einen AVR könnte der Code in C ungefähr so aussehen: [c] #include <avr/io.h> #define F_CPU 1E6 #include <util/delay.h> #define LED1 B, 7 #define CONCAT(x, y) x ## y #define LEDINIT_(port, pin) CONCAT(DDR, port) |= (1 << (pin)) #define LEDINIT(led) LEDINIT_(led) #define LEDSET_(port, pin) CONCAT(PORT, port) |= (1 << (pin)) #define LEDSET(led) LEDSET_(led) #define LEDCLR_(port, pin) CONCAT(PORT, port) &= ~(1 << (pin))
-
Thread
A/D Beim Atmega16
Datenleitungen 1-1 gepolt so kann die Widerstand Messung beginnen, der Sender Brückt intern die Adern 1-2 , 3-4 , 5-6 , 7-8 und im Empfänger werden die Wechselkontakte vom Relai K10 Betätigt. Die Port's PC1, PC3, PC5, PC7 werden auf Masse geschaltet und mit Hilfe von K1 , K2 , K3 , K4 kann der Empfänger
Testprogramm 1: Schaltet die Relais einzeln durch alle 100ms (ohne Probleme) Testprogramm 2: Schaltet alle Relais gleichzeit (ohne Probleme) Testprogramm 3: Setz alle pins vom PORTB auf 0V (ohne Probleme) Testprogramm 4: Setz alle pins vom PORTB auf 5V (ohne Probleme) aber
-
Thread
C8051F020 P1 als Ein- und Ausgang
Also... alles an P1 ist GPIO... (wobei man die LED drehen sollte...) P0.0 und P0.1 ist Eingang P0.2 bis P0.5 ist Ausgang P0.6 und P0.7 setzen wir mal als Ausgang... lt. AN101 The Crossbar MUST be enabled in order to use any Port 0, Port 1, or Port 2 port pins as outputs. The output mode
P0: P0MDOUT = 0xD0; weil: P0.0,P0.2,P0.3 als Ausgang. P0.1 als Eingang. P1: P1MDOUT = 0x3C; OpenDrain ist = 0, PushPull = 1 Die LED zu drehen bringt wohl nur was wenn man sie auch gegen VCC schaltet. Mit AN101 meint er
-
Thread
Arduino Genuino 101 - Erfahrungen?
hier mal den Kern der Loop-Schleife rein. Darin ist alles enthalten, was Problem machen kann: [c] void loop() { if (zaehler_sensoren==0) { if (digitalRead(pin_sensor1)==LOW) sensordurchgang1=millis(); if (digitalRead(pin_sensor2)==LOW) sensordurchgang2=millis
() { latest_interrupted_pin=PCintPort::arduinoPin; durchgang_steuerbord = micros(); } [/c] Gruß Xenophon
-
Thread
Interrupt springt nicht in die Serviceroutine MKL26z128
(GPIO) LED blau PORTC->PCR[3]|=PORT_PCR_MUX(1); //Pin PTC 3 auf ALT01(GPIO) taster ///////////AUSGÄNGE SETZEN//////////////// PTD->PDDR|=(1<<5); //Pin PTD 05 auf Ausgang PTE->PDDR|=(1<<29); //Pin PTA 29 auf Ausgang PTE->PDDR|=(1<<31); //Pin PTA 31 auf Ausgang /////Taster und Interrupt//// PORTC->PCR[3]= (PORT_PCR_MUX(1) |PORT_PCR_PE_MASK |PORT_PCR_IRQC(5)); NVIC_EnableIRQ(PORTC_PORTD_IRQn);
-
Thread
R2R Netzwerk Problem
) #define S2STATUS (PINC & (1<<PC1)) // PortB Bit3 lesen (high-aktiv) #define S3INIT (DDRC &=~(1<<PC2)) // DDRB Bit2 löschen (als Eingang konfigurieren) #define S3STATUS (PINC & (1<<PC2)) // PortB Bit2 lesen (high-aktiv) #define S4INIT (DDRC &=~(1<<PC3)) // DDRB Bit3 löschen (als Eingang konfigurieren) #define S4STATUS (PINC & (1<<PC3)) // PortB Bit3 lesen (high-aktiv) #define S5INIT