-
Thread
SPRINTF funktioniert nicht!
= 0x00; LATA = 0x00; TRISC = 0; // set PORTC as output PORTC = 0; // clear PORTC TRISD = 0; TRISE = 16; // RE4 as input, RE5 as output
-
Thread
PIC empfängt keine CAN-Bus-Nachrichten?
= 0; TRISE = 16; // RE4 as input, RE5 as output PORTC = 0; // clear PORTC TRISC = 0; // set PORTC as output Can_Init_Flags = 0;
CANRead(&Rx_ID, RxTx_Data, &len, &read_flag); if(Rx_ID == 507) { PORTC = 0xFF; } else {PORTC = 0x1;} } } [/c] Das CANWrite habe ich aktuell ausgegraut. Vielen Dank im Voraus! VG Stefan
-
Thread
PIC18F87k22 RTCC
pragma config WAIT = OFF // External Bus Wait (Disabled) // CONFIG3H #pragma config CCP2MX = PORTC // CCP2 Mux (RC1) #pragma config ECCPMX = PORTE // ECCP Mux (Enhanced CCP1/3 [P1B/P1C/P3B/P3C] muxed with RE6/RE5/RE4/RE3) #pragma config MSSPMSK = MSK7 // MSSP address masking (7 Bit address
RB6 as INPUT used as PGC TRISBbits.TRISB7 = 1; //set RB7 as INPUT used as PGD //PORTC C0-C7 TRISCbits.TRISC6 = 0; //set RC6 as OUTPUT used as BT-UART TX TRISCbits.TRISC7 = 1; //set RC7 as INPUT used as BT-UART RX //PORTG G0-G4 TRISGbits.TRISG4 = 0; /
-
Thread
Tasterabfragen Problem
define LED PC1 int main(void) { DDRC |= (1<<LED); DDRC &= ~(1<<Menu_Taster); PORTC |= (1<<Menu_Taster); while(1) { if (PINC & (1<<Menu_Taster)) PORTC &= ~(1<<LED); else PORTC |= (1<<LED); } } So funktioniert zumindest schon einmal die Taster Abfrage richtig
lcd_initialisieren(); lcd_led(1); DDRC |= (1<<LED); DDRC &= ~(1<<Menu_Taster); PORTC |= (1<<Menu_Taster); lcd_zahl(1,1, a, 2); lcd_zahl(1,4, b, 2); while(1) { if (PINC & (1<<Menu_Taster)) a++; else b++; } }
-
Thread
Drehencoder zählt doppelt.
(PINA & 1<<PA3) // an Pinbelegung anpassen #define LEDS_DDR DDRC #define LEDS PORTC // LEDs gegen Vcc geschaltet volatile int8_t enc_delta; // Drehgeberbewegung zwischen // zwei Auslesungen im Hauptprogramm
-
Thread
Anzeige LCD-I2C / Multitasking und Tasterentprellung von Peter
schalten immer zusammen mit long { PORTC &= ~(1<<PC6); // LED an } if(get_key_long(1<<KEY_1)) // Lang schalten immer mit short { PORTC |= (1<<PC6); // LED aus } //////////////////////////////
schalten immer zusammen mit long { PORTC &= ~(1<<PC6); // LED an } if(get_key_long(1<<KEY_1)) // Lang schalten immer mit short { PORTC |= (1<<PC6); // LED aus } anzeige();
-
Artikel
Batteriemonitor mit Dual Slope Wandler
erreicht. Des weiteren ist an den Mikrocontroller das Display zur Anzeige der ausgerechneten Werte an PORTC angeschlossen. Die Beleuchtung des Displays kann wahlweise softwaremäßig über den OC2-Ausgang des Mikrocontrollers gedimmt oder auf konstante Helligkeit eingestellt werden. Der Kontrast kann Hardwareseitig
-
Thread
Proplem mit LED Matrix 20 x 7
PORTC |=(1<<PC5); // Takt HIGH -> Flanke => schreiben PORTC &=~(1<<PC5); // Takt LOW PORTC |= (1<<PC4); // Bit 1 Setzen PORTC |=(1<<PC5); // Takt HIGH -> Flanke => schreiben PORTC &=~(1<<PC5); // Takt LOW PORTC &=~ (1<<PC4); // Bit 0 Setzen PORTC |=(1<<PC5); // Takt HIGH -> Flanke => schreiben PORTC &=~(1<<PC5); // Takt LOW
-
Thread
ATXmega32e5 SPI und Timer eliminieren sich gegenseitig?
Hallo, PORTC.REMAP = 0 PORTD.REMAP = 0 Habe ich beides.
CCP_IOREG_gc; CLK.CTRL = CLK_SCLKSEL_RC32M_gc; //Set My Ports PORTA.DIR=0xFF; PORTC.DIR=0xBF; PORTD.DIR=0xFF; PORTR.DIR=0xFF; PORTA.OUT=NULL; PORTC.OUT=NULL; PORTD.OUT=NULL; PORTR.OUT=NULL; //Note: Remap off! PORTC.REMAP = NULL; PORTD.REMAP
-
Thread
AVR: Rogue Pointer oder böser Geist verursachen Abstürze
MI0 DDRD = 0; // Later Interrupt pin DDRE &= ~(1<<7); PORTB |= (1<<0); PORTC = (3<<3); // ABCC ModuleDetection Pins, aktiviere internen Pullup PORTC &= ~(1<<1); //Pull reset Low PORTD = (1<<0); MCUCR &= ~(1<<PUD); //Global-Pulldown-Disable = off (
-
Thread
Pls alle rein
PORTC |= ( 1 << PC0 ); LongWait(ElapsedPressedButton); PORTC &= ~( 1 << PC0 ); LongWait(ElapsedPressedButton); ElapsedIntervall = 0; }
)) { PORTC |= ( 1 << PC0 ); LongWait(ElapsedPressedButton); PORTC &= ~( 1 << PC0 ); //LongWait(ElapsedPressedButton); LongWait(1000); PORTC
-
Thread
Atmega8 scheint UART zu empfangen
sind. Somit ist 1 gleich 0 und umgekehrt. Schmeiss das hier mal raus DDRC = 0b11111111; PORTC = 0b11111111; und stattdessen: DDRC = 0xFF; PORTC = 0x00;
MYUBRR); unsigned char zeichen; printString("Welcome AVR!\r\n"); DDRC = 0xFF; PORTC = 0xFF; _delay_ms(1000); while (1) { zeichen = receiveByte(); PORTC = PORTC << 1; //PORTC= zeichen; //printString("Test\r\n") _delay_ms(200); }
-
Thread
ATXMega32e5 SPI MISO immer 0 mit AT45DB161 Flash IC
eine ATXmega32e5 mit AT45DB161 (SPI Flash) verbunden. Das ganze läuft leider nicht gut. SPI auf PORTC. Ich habe mir die Sachen angeguckt, die Daten werden vom XMega korrekt gesendet (SPI Modus 3), allerdings zieht der Slave (Flash-IC) den MISO permanent auf 0, sodass keine Daten ankommen. Als
of SCLK. Data is sampled on rising edge of SCLK. */ SPI_MasterInit(&spiMasterC, &SPIC, &PORTC, FALSE, SPI_MODE_0_gc, FALSE, FALSE, SPI_PRESCALER_DIV128_gc); /* Initialize SPI */ MISO_IN; SET_MISO_PULLED; CLEAR_CS; /* Skip any pending bits */ for(uint8_t i
-
Thread
PIC18F46K80 Programm Fehler
BORV = 3 config BORPWR = ZPBORMV config WDTEN = OFF config WDTPS = 1048576 config CANMX = PORTC config MSSPMSK = MSK7 config MCLRE = OFF config STVREN = ON config BBSIZ = BB1K ... ;##############################################################################; org h'0' Arg0
-
Thread
Pin als Eingang
PB6 = Ausgang DDRB |= (1<<PB6); // PC0 = Eingang DDRC &= ~(1<<PC0); // Pull-up ein PORTC |= (1<<PC0); // Endlosschleife while(1) { // Taster an PINC0 abfragen if((PINC & (1<<PC0)) == 0) { // Prellzeit _delay_ms(50); // Taster nochmal abfragen
-
Thread
Entprellen Systick Debounce STM32
der Port und der Pin übergeben wird und als Rückgabewert eine 1 od. 0 liefert. z.B.: Pin 1 am PortC soll entprellt/ausgelesen werden. Funktionsaufruf sollte sinngemäß so aussehen: Debounce(GPIOC,1) Ich weiß dass der Funktionskopf jenem von [c]uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx
-
Artikel
Raspberry-Webradio
gesetzt werden. Für den ATMega32 bedeutet das: Taktfrequenz auf Quarz und JTAG deaktivieren (damit PORTC verwendet werden kann). Das Entspricht den Fuse-Werten Low-Fuse 0xde und High-Fuse 0xd9) Am ATTiny stellen die Fuses die interne Taktfrequenz auf 8MHz. Die Fuse-Werte sind Low-Fuse 0xe4, High-Fuse
-
Thread
Plotter upgraden
switches) had to be disabled as ALL those pins are required for phase signals. What IS left is all of PortC (Arduino analog pins) support. So coolant, E-stop, and even probing should still work! --currently unverified-- [/code] Hm, so super ist das jetzt auch nicht, wenn die Anschlag-Schalter deaktiviert
-
Thread
Problem mit DMX Empfang mit Arduino und Atmel Studio
Interrupts Enable Serial.begin(57600); DDRC = (1<<PB3); PORTB |= 0x3F; PORTC |= 0xFF; PORTC &=~(1<<PB3); } void loop() { dmx_adresse=1; //new calculation of val1 //val1 = valMap[dmx_buffer[dmx_adresse]]; val1 = (255 - dmx_buffer[dmx_adresse])/2
-
Thread
LCD 12864 am ATmega32
Initialisierung nicht mit meinem µC zusammenpasst, hab ich sie so umgeschrieben: #define LCDPORT PORTC #define LCD_RS 4 #define LCD_EN 6 #define LCD_REST 5 #define LCD_DB4 0 #define LCD_DB5 1 #define LCD_DB6 2 #define LCD_DB7 3 RS, EN und REST setzen ist kein Problem
-
Thread
An die Ardunio Gemeinde
DDRD = 0; // inputs // turn on pullups on all inputs PORTB = 0b11011111; PORTC = 0xFF; PORTD = 0xFF; } int main(void) { init_io(); while (1) { PORTB |= 0b00100000; _delay_ms(100);
-
Thread
AT90 Servo-Pulsgenerator pulst ungleichmäßig
PORTA = 0b00000000; DDRA = 0b00000000; PORTB = 0b00000000; DDRB = 0b00000000; PORTC = 0b00000000; DDRC = 0b00000000; PORTD = 0b00000000; DDRD = 0b00000100; PORTE = 0b00010000; DDRE = 0b00010011; //Led4+servo78 set as output PORTF = 0b00000000
-
Thread
Bits löschen - Ich stehe auf dem Schlauch
. int main(void) { /* Replace with your application code */ DDRC = 0b00000111; PORTC = 0; while (1) { for (int i = 0; i < 3; i++) { PORTC |= (1 << i); _delay_ms(100); } for (int i = 0; i < 4; i++) { PORTC &= -(1 <<
[code] PORTC &= ~(1 << i); [/code] nicht [code] PORTC &= -(1 << i); [/code]
-
Thread
Wiedereinstieg, Problem mit Programmer
DDRC = (1 << PC5); /* Output */ PINC = (1 << PC5); /* internal Pullups */ while(1){ PORTC |= (1 << PC5);/*LED OFF*/ _delay_ms(250); PORTC &= ~(1 << PC5); _delay_ms(250); } return 0; } [/c] Falls noch weitere Infos benötigt werden kann ich die natürlich
-
Thread
LCD an ATmega644 (später ATmega8) mittels TWI/I2C (Anfängergerecht)
Bits als Steuerleitungen ebenfalls möglich. Das hilft mir zwar weiter, aber die Frage warum es mit PORTC oder PORTD nicht funktioniert bleibt bestehen. Danke.
ein wenig Zeit und Erbarmen hat und mir die main nur so umschreiben das ich über TWI (ATmega 644A , PORTC Pin 0 und 1) eine einzige Meldung aufs LCD schreibe und es mir dann nochmal hochladen? Ich lerne scheinbar an fertigen (funktionierenden) Beispielen am besten. Die Adresse des PCF8574 habe ich wenn
-
Thread
ATMega8, Timer1, CTC, ISR wird nur einmal aufgerufen
) { DDRC |= (1<<DDC0); // Ausgang für LED PORTC &= ~(1<<PORTC0); // LED zu Beginn auschalten timer_init(); // Timer initialisieren lcd_init(); // LCD initialisieren sei(); // Interrupts global aktivieren while
) { DDRC |= (1<<DDC0); // Ausgang für LED PORTC &= ~(1<<PORTC0); // LED zu Beginn auschalten timer_init(); // Timer initialisieren lcd_init(); // LCD initialisieren sei(); // Interrupts global aktivieren while
-
Thread
ATMega 128 Auf Ports über Pointer zugreifen
* pDDR[] = {&DDRA,&DDRB,&DDRC,&DDRD,&DDRE,&DDRF}; volatile uint8_t* pPorts[] = {&PORTA,&PORTB,&PORTC,&PORTD,&PORTE,&PORTF}; pDDR[port] = 0xff; if(dir == 255) pPorts[port] = 0xff; } [/c] Folgendes habe ich dann auch noch in der h-Datei [c] #include <avr/io.h> typedef enum PORT{PIO_PORTA,PIO_PORTB,PIO_PORTC,PIO_PORTD,PIO_PORTE,PIO_PORTF,PIO_PORTG}ePORT; typedef enum PORTDIR{PIO_OUT=255,PIO_IN=0}ePORTDIR; #define DDR_Array[] void initPort(ePORT port, ePORTDIR dir); [/c] Die Schreibweise volatile
-
Thread
BASCOM Lib für I²C LCD Modul von eBay
"M8adef.dat" $crystal = 8000000 $hwstack = 50 $swstack = 50 $framesize = 100 'Config Scl = Portc.5 'Konfigurieren von I2C 'Config Sda = Portc.4 $lib "YwRobot_Lcd_i2c.lib" 'YwRobot Treiber für LCD $lib "i2c_twi.lbx" Config Twi = 100000 '**
-
Thread
Welchen Schieberegister besser geeignet (74HC165 oder 74HCT165)
aus? Vielen Dank! So sieht der Code dazu aus: [c] void Eingaenge_abfragen () { PORTC |= (1<<PC4); // Mit PL alle Eingänge in das Register schieben. // PL auf High PORTC |= (1<<PC5); // PL auf Low PORTC &= ~(1<<PC5); // PL auf High PORTC |= (1<
=0;i--) { // Mit Clock weiterschieben // Clock auf High PORTC |= (1<<PC4); // Clock auf Low PORTC &= ~(1<<PC4); // Clock auf High PORTC |= (1<<PC4); } // For Ende } [/c]
-
Thread
ATMEGA 32L - gedrückter Button wird nicht erkannt
Hallo, ich scheitere gerade an einem sehr banalen Problem. Ich versuche am PORTC an den Pins 4,5,6 jeweils 3 verschiedene Buttons einzulesen. Leider erkennt mein Programm nur den PINC6. PINC5 und PINC4 werden leider nicht erkannt. In dem folgenden Codebeispiel versuche ich
{ DDRC &= ~((1 << PINC5)); DDRC |= (1 << PINC0); PORTC |= (1 << PINC5); while(1) { if (debounce(&PINC, PC5)) { PORTC ^= (1 << PC0); } } } Habe direkt auch mal am PC5 gemessen - durch die Pull-Up Widerstände werden
-
Thread
DHT11 auf PIC16F883
PORTA-Ausgänge auf 0 setzen clrf PORTB ; alle PORTB-Ausgänge auf 0 setzen clrf PORTC ; alle PORTC-Ausgänge auf 0 setzen clrf Kikislave clrf Kiki ; Hauptprogramm ***************************************************************** main movlw b'00000110'
STATUS,Z goto Abfragen movlw b'11111000' andwf Kiki,f movf Kiki,w iorwf PORTC,f clrf Kikislave call warte18ms call warte18ms goto main goto $ ; Sprung auf sich selbst ;goto main ; Sprung
-
Thread
LEDs toggeln nicht richtig
initialisieren ldi r16, HIGH(RAMEND) out SPH, r16 ldi r16, LOW(RAMEND) out SPL, r16 ; PORTC als Ausgang ldi r16, 0xFF out DDRC, r16 ldi r16, 0xFF out PORTC, r16 ; PÓRT D als Eingang ldi r16, 0x00 out DDRD, r16 ; Pull-Up aktivieren ldi r16, 0xFF out PORTD
main: sbis PIND, 2 rcall switch_off rjmp main switch_off: mov r17, r16 in r16, PORTC com r16 out PORTC, r16 mov r16, r17 switch_off_: sbis PIND, 2 rjmp switch_off_ ret
-
Thread
LED gehen wieder an, aber warum?
. Hier mein Code: start: ; PORTC als Ausgang ldi r16, 0xFF out DDRC, r16 ldi r16, 0xFF out PORTC, r16 ; PÓRT D als Eingang ldi r16, 0x00 out DDRD, r16 ; Pull-Up aktivieren ldi r16, 0xFF out
, 2 rcall switch_off rjmp main switch_off: mov r17, r16 ldi r16, 0x00 out PORTC, r16 mov r16, r17 ret
-
Thread
Taktfrequenz bei STM32F103C8T6 Minimum development board
habe CooCox IDE und den GNU ARM Compiler installiert und "Hello World!" mit der blinkenden LED auf PORTC13 geschrieben, hat alles super geklappt. Ich dachte die Taktfrequenz von dem MCU waere auf 72 MHz gestellt, so steht es bei mir in der system_stm32f10x.c Datei. Wenn ich aber den Logikanalysator
-
Thread
Aquariumsteuerung
setzen und beliebige Pins nehmen, auch von anderen Ports. An deiner Stelle würde ich wahrscheinlich PortC (Pin 4 - 7) nutzen um das Display damit zu verbinden, dann bleiben die ADC-Ports für andere Aufgaben frei. Anstatt der teuren DS18B20 würde ich wahrscheinlich einfach NTCs verwenden. Du brauchst