-
Thread
DotMatrix 16x4 in C ansteuern
LCD_WRITEDATA_US 46 #define LCD_COMMAND_US 42 #define LCD_SOFT_RESET_MS1 5 #define LCD_SOFT_RESET_MS2 1 #define LCD_SOFT_RESET_MS3 1 #define LCD_SET_4BITMODE_MS 5 #define LCD_CLEAR_DISPLAY_MS 2 #define LCD_CURSOR_HOME_MS 2 #endif // LCD_TIMINGS
0x40 #define LCD_GC_CHAR0 0 #define LCD_GC_CHAR1 1 #define LCD_GC_CHAR2 2 #define LCD_GC_CHAR3 3 #define LCD_GC_CHAR4 4 #define LCD_GC_CHAR5 5 #define LCD_GC_CHAR6 6 #define LCD_GC_CHAR7 7 // Set DD
-
Thread
USB-Stick am Mikrocontroller VNC1L
nicht viel zu tun hat. Lässt sich nicht mit der Hardware-SPI realisieren, zumindest nicht beim AT89C51ED2. Die Pins kannst Du frei zuordnen.
erst die Kanäle 0-4 vom PortC verwendet. Aber bei der Fehlersuche hab ich festgestellt das die Kanäle 2-5 nicht mehr reagieren. Aber ich weiß nicht seit wann schon. Ich hoffen mal das da nix am VDIP kaputt gegangen ist. Vertaucht
-
Thread
msp430f1612_testfunktion pins high-low
***** [/c] Zur Erklärung: (so SOLL es funktionieren) Port5 ist mittels [c] P5DIR = 0x10; // alle pins auf eingang setzen, bis auf P5.4 (SW1) P5OUT = 0x00; // alles auf low [/c] initialisiert. In der
mal drin... Sollte dann auch noch SW2 auf high liegen, ist der Schreibschutz inaktiv, ansonsten ist er aktiv. Wenn der Schreibschutz inaktiv sein sollte, müsste am Port 0111 0000 == 0x70 anliegen. Dann liegen SW1(P5.4), SW2(P5.6) und SW3
-
Thread
Idee: Charlieplexing - Intelligenter Steuerungsalgorithmus?
Schau dir mal den Glühwürmchensource an, in FireFly.h findest du [c] // LED Rows, Pins connected to LEDs #define R0 (1 << PB0) #define R1 (1 << PB1) #define R2 (1 << PB2) #define R3 (1 << PB5) prog_uint8_t ddr_data[16] = { R0, R0^R1, R0^R2, R0^R3, R1, R1^R0, R1^R2, R1^R3, R2, R2^R0, R2^R1, R2^R3, R3, R3^R0, R3^R1, R3^R2}; [/c] Das ist für 12 LEDs an 4 Pins. ddr_data[] enthält die Definitionen welche Pins zu steuern sind. Der erste Wert (1. Spalte
-
Thread
ATmega32 mit Timer1 (PD5) + restliche Ports als I/O nutzen
Port A, B, C und D als Ausgang und alle Ausgänge auf LOW DDRA = 0xFF; PORTA |= (0 << PA0) | (0 << PA1) | (0 << PA2) | (0 << PA3) | (0 << PA4) | (0 << PA5) | (0 << PA6) | (0 << PA7); DDRB = 0xFF
[c]ISR(TIMER1_COMPA_vect) { PORTD = (1 << PD5); } ISR(TIMER1_COMPB_vect) { PORTD = (0 << PD5); }[/c]Scherzkeks. Du selbst bist doch derjenige, der alle Pins von Port D laufend "überbügelt".
-
Thread
ISE Spartan 3E Starter Kit > PIN Problem
Hallo, ich habe mir das Spartan 3E Starter Kit gekauft. Fange erst jetzt mit FPGA an. Ich habe mir ein Project mit ISE erstellt. Folgende Einstellungen benutzt: Family: Spartan3E Device: XC3S500E Package: CP132 Speed: -5
DRIVE = 8 ; NET "LED<6>" LOC = "E9" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ; NET "LED<5>" LOC = "D11" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ; NET "LED<4>" LOC = "C11" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ; NET "LED<3>" LOC = "F11" | IOSTANDARD = LVTTL | SLEW = SLOW
-
Thread
VHDL Grundlagen : Rechnen
durchaus/ einen Fehler und vorneweg zwei Infos, die das Fehlen der Breite anmeckern: [pre] INFO - c:/.../multiplier.vhd(22): input pin size has no actual or default value. VHDL-9000 INFO - C:/lscc/diamond/3.8_x64/ispfpga/vhdl_packages/numeric_std.vhd(718): size is declared here. VHDL-1259 ERROR
so mancher Anfänger überrascht, wo denn nach dem Compilieren wohl seine Schleife geblieben ist. [c] i = 3 * 5 / 2; [/c] oder [c] for (i = 0; i < 1000; i++); [/c] oder gar [c] #include <iostream> template <int N> struct Fib_t { enum { value = Fib_t<N-1>::value + Fib_t<N
-
Thread
Präprozessorabfrage
ich habe folgenden code: [c] #define dsz_port D #define dsz_pin 5 #define dsz_int_port 2 #ifdef PORTA //m644 #else //m328 #if dsz_port==B #define dsz_vect PCINT0_vect test //gewollte Fehlermeldung
C #endif #if dsz_int_port == 2 #define dsz_port D #endif Allerdings möchte ich den D5-Pin auch so bezeichnen, weil das bei AVRs geläufig ist. Man weiß dann gleich welcher Pin gemeint ist.
-
Thread
Über Mikrocontroller Beschleunigungssensor auslesen
und die Daten des Sensors? So hatte ich mal angefangen... DDRC &= ~( ( 1 << DDC4 ) | ( 1<<DDC5) ); uint8_t bPortC; bPortC = PINC; Gruß
rüberschicken, die Antwort ist der entsprechende Wert. Bit0 aus dem empfangenen Byte herausextrahieren. Bei I²C korrekt adressieren, bei SPI die richtige Länge senden. > So hatte ich mal angefangen... > DDRC &= ~( ( 1 << DDC4 ) | ( 1<<DDC5) ); > uint8_t bPortC; > bPortC = PINC; Schaut nach C aus, hilft
-
Thread
Mico32 4 Bit Pin setzen
Low Nibble senden [/c] anbei noch ein Oszibild von Wert 0 bis 15 der Ausgabe, Kanal 1 ist DB4, Kanal 2 ist DB5, Kanal 3 ist DB6 und Kanal 4 ist DB7. @ Lothar: hab ich gerade probiert, leider auch ohne Erfolg.
Edit: >anbei noch ein Oszibild von Wert 0 bis 15 der Ausgabe, Kanal 1 ist DB4, >Kanal 2 ist DB5, Kanal 3 ist DB6 und Kanal 4 ist DB7. Das Bild ist ohne 1sec Wartezeit und die Funktion wird so aufgerufen: [c] for (i = 0; i < 16; i++) lcd_out(i); [/c] Vielen Dank Peter
-
Thread
STM32 welcher Pin ist INT?
pending bit EXTI->PR = EXTI_PR_PR0; } } ... // Enable SYSCFG clock RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE); // Connect EXTI Line0 to PB0 pin */ SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOB, EXTI_PinSource0); // Configure EXTI Line0 EXTI_InitTypeDef
Hätte dazu auch mal 'ne Frage, da ich dazu keine Beispiele gefunden habe. Kann ich auch mehrere Pins auf eine EXTI Line legen , z.B. so: [c] SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOB, EXTI_PinSource0 | EXTI_PinSource1 | EXTI_PinSource2); [/c] Konkret möchte ich mit 3 Hallsensoren eines BLDC
-
Thread
Nokia Farbdisplay 3510i / 6100
Hallo Matthias, ich habe ein 3510i ohne Probleme wie folgt an einem Mega128 laufen: 3,3V an Pins 6&7. Die Logik-Pegel für select, clock, data und reset erzeuge ich mir mit einem einfachen Spannungsteiler (wenn ich mich recht erinnere: 2,2K zu 3,3K). Klappt gut auch mit höheren SPI-Taktraten
mehrfach versucht mein Display (6100) ans Laufen zu bringen. Spannung an der Hintergrundbeleuchtung ca. 6,3V. Versorgungsspannung des Disp. 3,1V. Atmega161 an 5V. Dessen Ausgänge mit je 2x Diode und Widerstand auf 2,8V herabgesetzt. Von den Beispielen habe ich schon verschiede ausprobiert, aber ohne Erfolg
-
Thread
uC Programmierung gegen kleinen Obulus
Software ist ja schon existent. Diese müsste ja "nur" angepasst werden. Für einen Kundigen in Sachen uC Programmierung sollte das in 2-3 Stunden erledigt sein (wurde mir mal gesagt). 50€ Wäre so mein Ansatz...wenns 60 werden auch ok. Kontaktdaten gebe ich dann an denjenigen der mir das programmiert.
Hallo Matthias oder Stefan B.: dann lass es doch von dem machen, der Dir das mit den 2-3 Stunden gesagt hat. Der hat sich offenbar bereits damit beschäftigt, kennt Dich und Du ihn und gut ist! Oder?
-
Thread
arduino oder GCC Programmierung
(5); ich finde das so nach jedem Schreibvorgang besser [c] void voidMyI2C_EepromWaitReady(void) { Wire.setClock(I2C_CLOCK_LOW); // Wait until EEPROM gives ACK again. // this is a bit faster
man da Pins angeben? Dazu gibt es keine Notwendigkeit, da die Pins fest vergeben sind.. Aus meiner Sicht gibts da nur 2 Möglichkeiten: 1 Du irrst dich (mal wieder) 2 Du verwendest irgendeine exotische SoftI2C
-
Thread
WiFi-Modul für AVR Net IO gesucht
über I2C (das I2C-EEPROM enthält die Defaultsettings, kann aber nach der Initialisierung voll vom Controller mitbenutzt werden), und man kann Header zuschalten, an denen man erkennt, von welchem Port ein Paket
5.6-34V 0.75A auf 5V/3.3V mit MC34063 5V->3.3V step-down für carambola Dataflash+(µ)SD Card i2c sram/fram/eeprom RS485 / Lin Temperatursensor Funkmodul(RFM70/RFM12...) 2x ETH (Magjack) Xbee footprint
-
Thread
STM32F405RGT6 keine Verbindung über USB
/mesh.drone/mesh-fc-v1-backup Unterschied zu meinem ist der Spannungsteiler VUSB liegt bei mir an Pin2 und nicht an Pin25 vom STM32 (hab auch schon eine Brücke von Pin2 auf Pin25 gelegt). Und Pin19 ist bei mir auf 3,3V. Die Frage ist jetzt, liegt der Fehler im Schaltplan oder was könnte man machen
Pinbelegung ist deshalb nach diesem Config File erstellt worden: https://github.com/iNavFlight/inav/blob/362f5c5dc159fe3b100bf8a9022e294b6e5d32ed/src/main/target/MATEKF405SE/target.h
-
Thread
unterschied zwischen direction und ausgabe
ich weis gibts P1, P2, P3, P4 aufjedenfall ist P1 dann für Output und P3 für Input, sonst würde das Tutorial keinen Sinn ergeben, aber was ist mit P2 und P4? und wa sist mit controllern die mehr Pins haben wie andere?
gerschrieben, dadurch wird der Transistor T2 gesperrt. Also beim Lesen von Informationen vom Port-Pin sollte T2 gesperrt sein. So! Nun gibt es Befehle die den Inhalt des Port-Latch lesen und andere die den Pegel am Port-Pin lesen. Befehle
-
Thread
ADC-Wandlungs-Ergebnis als Bitfolge an einem Port ausgeben
meines Atmega16 PA0. Ab dort soll nun mein Programm den Wert erstmal digitalisieren und danach am PortB wieder ausgeben. Hierbei allerdings nur an einem Pin des PortB (in diesem Fall PB0). Hier soll die Bitfolge einfach hintereinander weg ablaufen und für jede 0 0V und jede 1 5V ausgeben. Da ich am Ausgang
ich habe eben mit erstaunen entdeckt das ich mit dem abgeänderten programm an PC3 und PC5 um die 3,5V anliegen habe... allerdings auch ständig ohne das sich an dem wert was ändert. da ich im programm allerdings den gesamten port als ausgang geschaltet habe und auch auf den gesamten
-
Thread
ATMEGA8 mit Grafik-Display DOGM-132-5 in Assembler
Hi >CS1B dauerhaft low (direkt an GND) >A0 an PB 1 >RESET an PB0 >SI an PB3(MOSI) >SCL an PB5 (SCK) Und was hängt an PB2? Das ist das SS-Pin. Und wenn das Eingang und offen ist, schaltet sich früher oder später der Mastermode ab. Entweder als Ausgang schalten oder wenn Eingang
//www.reichelt.de/Vielschicht-SMD-G0805-High-Cap/X7R-G0805-1-0-25/3/index.html?&ACTION=3&LA=2&ARTICLE=89730&GROUPID=4339&artnr=X7R-G0805+1%2C0%2F25 Ist auch die Empfehlung von Electronic Assembly. MfG Spess
-
Thread
Erfahrungsbericht Pins hochohmig schalten
=> "SSTL2_II") port map (IO => mcb3_dram_dq(i), O => open, I => '1', T => '1'); end generate BUF_DQ; [/vhdl] Danach blieb der FPGA auf gefühlt leicht über Raumtemperatur. Benutzt hab ich ISE
diese feine Unterscheidung aber halt nichts: jede 50Ohm Split-Termination zieht mit 200Ohm an der 1,5V Versorgung (auch wenn von außen nichts getrieben wird). Und da 16 DQ-pins plus 4 DQS-pins (2 differentiell) parallel liegen, läppert sich das.
-
Thread
Register erstellen mit vorhandenen Pins
Hallo miteinander Ich habe mitlerweile schon mehrmals das Problem gehabt, dass ich an einem "zusammengesetzten" Ausgang gerne normal einen Wert übergeben wollte. Zum Beispiel PORTXYY=0x441 bei einem 12 Bit Port. Kennt ihr eine möglichkeit so etwas über Defines zu lösen?? Bei einem ATMega644P habe ich zum Beispiel so etwas versucht: [c] #define PORTXYY ((PC0<<11)|(PC1<<9)|(PC2<<7)|(PC3<<5)|PORTA) [/c] PORTCC0 ist hier MSB und PORTA0 LSB Leider Funktioniert das nicht, denn wenn ich einen 12Bit Wert an PORTXYY anlege, kommt beim kompilieren immer Fehler: Wert ist zu gross... Ich hoffe
-
Thread
PC-Tastatur mit AVR ersetzen
PS2_PORT |= (1 << PS2_DATA); PS2_clock(); //Stopbit PS2_PORT |= (1 << PS2_DATA) PS2_clock(); _delay_ms(1); } [/c]
(parity & 1) PS2_PORT &= ~(1 << PS2_DATA); else PS2_PORT |= (1 << PS2_DATA); PS2_clock(); //Stopbit [/c]
-
Thread
2-Oktaven Klaviatur aus altem MIDI controller mit Arduino nutzen
nutzen. Leider weiss ich aber nicht wo ich anfangen soll. Auf der Unterseite befindet sich ein 8x2 male pin header. Dieses ist verbunden mit einer anderen Platine. Die 4 ICs die dort sichtbar sind sind (von links nach rechts) AHC138 - 3-LINE TO 8-LINE DECODERS/DEMULTIPLEXERS https://www.ti.com
if(KB2_PORT) KEY_current_state_au8[38] = 0; else KEY_current_state_au8[38] = 1; if(KB3_PORT) KEY_current_state_au8[39] = 0; else KEY_current_state_au8[39] = 1;
-
Thread
HEX File für STC12C5A60S2 kompilieren
Das mit "__code" steht in Kapitel 3.5.1 (3.5.1.5 um genau zu sein). Von Infineon gibt es eine App-Note mit ein paar weiteren Hinweisen dazu: http://www.infineon.com/dgdl/AP0806510_XC800_Migration_Keil_2_SDCC.pdf?fileId=db3a304314dca389011517efc5860d61
auf die Pins C1-C8. Die Unterste Ebene liegt an C1, die zweite von untern an C2 etc. Die Anoden wurden senkrecht mit der jeweiligen LED darunter verbunden und gehen auf eines der vielen X-Y-Pins. Bilder dazu hab
-
Thread
Programm von mega32 auf mega328P convertieren
Code, als nur "CR" Zeilenende ;-) [code] #include <avr/io.h> #include "../global_files/io_port.h" class allIOs { public: io_port ios[5] = { // LED PD5, PD6 io_port(PD5, &DDRD, &PORTD, &PIND, true), io_port(PD6, &DDRD, &PORTD, &PIND, true), // Schalter PD2, PD3, PD4 io_port(PD2, &DDRD, &PORTD, &PIND, false), io_port(PD3, &DDRD, &PORTD, &PIND, false), io_port(PD4, &DDRD, &PORTD, &PIND, false) }; }allios; int main(void) { while(1) { io_port
-
Thread
Funk-Heizungsregler-System MAX!
, ST2 mit dem Debug Port. Pinbelegung ist: 1 +3,3V 2 TXD 3 RXD 4 GND
COM1 PIN3 COM2 PIN4 COM3 PIN5 SEG 0-9 an PIN5-14) Kawa
-
Thread
Mehr I/O Pins.
NG, kann mir jemand sagen, was man macht, wenn man an seinem MC mehr I/Os braucht (so um die 32 3,3V + evtl. 5V tollerant)? Ich hab mal irgendwo was gesehen, das über SPI funktioniert. Wie schnell kommt man den da an einen PORT-Zustand ran, bzw. wie schnell (wieviele Zyklen) kann man einen PORT auf
beispielsweise ein LCD (7 IOs), einen PGA2311 (4 IOs) und einen Drehgeber (4 IOs) an einem 8 Bit Port, durch geschickes Verschalten und Multiplexen der IOs. Das klappt wunderbar und ist auch schnell. So schnell wirst du das mit einem Schieberegister, I2C Expander, oder was auch immer nicht hinbekommen
-
Thread
kein Zugriff auf I2C-EEPROM
Hallo, ich habe ein AT24C512B (=I2C-EEPROM), das ich gern benutzen möchte, aber leider nicht ansprechen kann. Seine Adresse ist lt. Datenblatt 0b1010xxx, wobei bei mir A0 an 5V und A1 und A2 mit Gnd verbunden sind. Also müßte
5.2.17 // aus dem I2C-EEPROM zwei Zahlenwerte, die aus je zwei // Bytes bestehen, auslesen. // Seriell ausdrucken: EEPROMadresse, die einzelnen Bytes und die // daraus zusammengesetzten Zahlenwerte
-
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