..... 'I2C Config Sda = Portc.1 Config Scl = Portc.0 Dim Busaddress As Byte Dim Busaddress_read As Byte Dim Chipaddress As Byte ..... '------------------------------------------------------------------------------ Scanbus:
once to initialize the I2C bus. No parameters ;* are required. ;* ;* RETURN ;* None ;* ;* NOTE ;* PORTC and DDRC pins not used by the I2C bus interface will be ;* set to Hi-Z (!). ;* ;* COMMENT ;* This function can be combined with other PORTC initializations. ;* ;************************************
Fuses liegen? Die Jumper an PORTD sind nicht gesetzt. Anfangs hatte ich das alles auch schon auf PORTC verdrahtet (und natürlich die headerdatei lcd-routines.h bezüglich der PORTs umgeschrieben), allerdings hatte ich dort das gleiche Problem. Mit Verwendung des PORTD´s habe ich die lcd-routines wieder
tust du das > DDRC=0xF0; schaltet (unter anderem) die Pins PC2 und PC3 auf Input. > PORTC=0xF0; Es wird auch kein Pullup für diese Pins aktiviert. -> Deine Pins PC2 und PC3 sind einfache Eingänge, denen µC seitig kein Pegel aufgezwungen wird. Es ist ein Irrtum, dass ein Input-Pin
Command Port #define LCD_DATA_PIN PINC // Data Input Register #define LCD_DATA_PORT PORTC // Data Output Register #define LCD_DATA_DDR DDRC // Data Direction Register for Data Port // Command Port Bits #define CD 0x07 // Data/Control (RS) PinNumber #define
Motor dreht. Hättet ihr eine Idee an was die liegen kann. Ich habe beim PWM sowohl direkt oder via PORTC versucht -> gleiches Ergebnis. Vielen Dank schon mal für eure Ideen! Beste Grüße,
and BOR/Value at all other Resets ‘1’ = Bit is set ‘0’ = Bit is cleared (1, 2) bit 7-0 RC<7:0> : PORTC General Purpose I/O Pin bits 1 = Port pin is IHV 0 = Port pin is ILV Note 1: Writes to PORTC are actually written to corresponding LATC register. Reads from PORTC register is return of actual I/O pin
0xff; // Ausgänge auf 0, Wegen Input anpassen? PORT = Pulldown bei Input? PORTA=0x00; PORTB=0x00; PORTC=0x00; PORTD=0x00; // Initalisierung von Time --> Set für Multiplex time(); while(1) { // Stunden einstellen gezählt, 2 IFs um zu entprellen, // // time am Ende um die 2 stelligen Stunden sofort zu
Datenbus DB4-DB7, das unterste Bit DB4 kann auf den Portbits 0..4 liegen // LCD DB4-DB7 <--> PORTC Bit PC0-PC3 #define LCD_DB PD0 // LCD Steuersignale RS und EN // LCD RS <--> PORTC Bit PC4 (RS: 0=Data, 1=Command) #define LCD_RS PD4 // LCD EN <--> PORTC
.... [/c] bei unveränderter Einstellung ja auch auf den PORTD gelegt werden. Die sind aber am PORTC. Also musst du das auch eintragen [c] .... #define LCD_RS_PORT PORTC /**< port for RS line */ #define LCD_RS_PIN 0 /**< pin for RS line */ #define LCD_RW_PORT PORTC /**< port for RW line */ #define LCD_RW_PIN 1 /**< pin for RW line */ #define LCD_E_PORT PORTC /**< port for Enable line */ #define LCD_E_PIN
LCD Datenbus DB4-DB7, das unterste Bit DB4 kann auf den Portbits 0..4 liegen // LCD DB4-DB7 <--> PORTC Bit PC0-PC3 #define LCD_DB PD4 // LCD Steuersignale RS und EN // LCD RS <--> PORTC Bit PC4 (RS: 0=Data, 1=Command) #define LCD_RS PC0 // LCD EN <--> PORTC Bit PC5 (EN: 1-Impuls für Daten) #define LCD_EN
are not used by PORTB. 2011 Microchip Technology Inc. DS39932D-page 141 PIC18F46J11 FAMILY 10.4 PORTC, TRISC and LATC Note: On a Power-on Reset, PORTC pins Registers (except RC2) are configured as digital PORTC is an 8-bit wide, bidirectional port. The corre- inputs. RC2 will default as an analog input
Da ich für Inputs (Taster) nur PROTC nutze, wird auch nur dieser von mir konfiguriert. .equ PORTC_DDRC = 0b00001001 ; DDRC (Richtungsregister, 1=Output, 0=Input) .equ PORTC_PORTC = 0b00000000 ; Alle Bits an PORTC0 ausschalten ldi Tmp, PORTC_DDRC ; DDRC (Richtungsregister) setzen out DDRC, Tmp ldi Tmp, PORTC_PORTC ; Bits und Pullup-Widerstände setzen out PORTC, Tmp @Alle anderen: Hmm, nun wenn das Abschalten des TX nicht Usus ist, dann ist das ja in Ordnung. Ich kenne den genauen
********** ende serial port ********************** Config Portb = Output Daten Alias Portb Config Portc.0 = Output W1 Alias Portc.0 W1 = 1 Config Portc.1 = Output W2 Alias Portc.1 W2 = 1 Config Portd.6 = Output Config Portd.7 = Output Dim Bcount As Word Dim Tempword As Word Dim Phase As Byte Dim Freq
PORTC &= 255-_BV(0); Das müsste ja die kurzfassung von PORTC = PORTC & 255-_BV(1); sein oder? was wiederum Bitmanipulation sein müsste?! Doch was genau tut diese? und wie kommt es dazu das dadurch mit
für was steht? Frage 3: Ist PORTC &= 255-_BV(0); die kurzfassung von PORTC = PORTC & 255-_BV(1); Frage 3.1: Was macht diese Bitmanipulation? Und wie kommt es dazu das dadurch der pin auf 0 gesetzt wird? Frage 3.2: Ist PORTC
Hallo, was soll das ... [c] PORTC= (PORTC & clr_bit) | stat_command; [/c] machen - keine Definition zu finden. Musst du evl. eine bestimmete Länge für den Resetzyklus einhalten?! Sascha
~0b1111100 Damit ist clr_bit= 0b0000011 auf 8Bit erweitert also 0b00000011 ! Beim verunden mit PortC wird PC7, alias Reset, wieder Low und damit aktiv. Sascha
beginnen. Du solltest AVCC einen Abblockkondensator spendieren und mit VCC verbinden. Sonst wird dein PortC nicht funktionieren. p.s. Das Zeichnen von Brücken in Schaltplänen ist unüblich. Statt dessen werden bei 3er- und 4er-Verbindungen Punkte gesetzt.
/ PWM-Schritte pro Zyklus(1..768) #endif #define PWM_PORT PORTB // Port für PWM #define PWM_PORT2 PORTC // Port für PWM #define PWM_PORT3 PORTD // Port für PWM #define PWM_DDR DDRB // Datenrichtungsregister für PWM #define PWM_DDR2 DDRC // Datenrichtungsregister für PWM #define PWM_DDR3 DDRD // Datenrichtungsregister
Hi >Aber selbst ein Minimalprogramm wie PortC auf Ausgang, alle Pins von C >auf HI funktioniert schon nicht. 4 Pins des PortC sind im Auslieferungszustand mit dem JTAG-Interface belegt. MfG Spess
spess53 schrieb im Beitrag #3678154: > Hi > >>Aber selbst ein Minimalprogramm wie PortC auf Ausgang, alle Pins von C >>auf HI funktioniert schon nicht. > > 4 Pins des PortC sind im Auslieferungszustand mit dem JTAG-Interface > belegt. > > MfG Spess Danke für die schnelle Antwort
umständlich gelöst? Beim PIC geht das meiner Meinung nach viel intuitiver. PORTCbits.RC2=1; vs. PORTC|=(1<<PC2); PORTCbits.RC2=0; vs. PORTC&=~(1<<PC2); if(PORTCbits.RC2) vs. if(PINC&(1<<PINC2))
Pascal schrieb im Beitrag #3669535: > PORTC|=(1<<PC2); dann schreib PORTC|=_BV(PC2);