-
Thread
Taster entprellen // Techniker Abschluss // Quelltext verstehen und Lösung
der zugehörigen Zeile der Tabelle an. (Die Werte der Variablen temp werden über die Eingänge von PortC gelesen und anschließend negiert. Hinweis: Zum Startzeitpunkt t=0 haben alle Variablen den Wert 0. Die Variablen „temp“ und „Tastenstatus“ sind 8-Bit-Variablen. Für diese Aufgabe reicht es
-
Thread
IO-Pins als Bitfeld zusammenfügen und maskieren (AVR)
//welche Ports werden für die Motoren verwendet volatile uint8_t * Port_Mask[ARRAY_LENGTH] = { &PORTC, &PORTC, &PORTC, &PORTC, &PORTA, &PORTA, &PORTA, &PORTA, &PORTB }; //mit welchen Pins sind die Motoren verbunden uint8_t Pin_Mask[ARRAY_LENGTH] = {PC7, PC6, PC5, PC4, PA7, PA6, PA5, PA4, PB0};
pin) //»a->b« Kurzform für »(*a).b« #define SBIT(x,y) SBIT_(x,y) #define MOTOR1 SBIT( PORTC, 7 ) #define MOTOR1_DDR SBIT( DDRC, 7 ) #define MOTOR2 SBIT( PORTC, 6 ) #define MOTOR2_DDR SBIT( DDRC, 6 ) #define MOTOR3 SBIT( PORTC, 5 ) #define MOTOR3_DDR SBIT( DDRC, 5 ) #define
-
Thread
RFM24W Datenblatt unklar
9600 Ddrc = &B111111 Ddrd = &B11111110 Ddrb = &B11101111 NSEL alias PortC.0 RX_ANT Alias Portc.1 TX_ANT Alias Portc.2 config spi= hard, interrupt = off, Data_order = MSB, Master = yes, polarity = high, phase = 0, Clockrate = 16, Noss = 1 spiinit dim spi_inp as Byte Do Nsel = 0
-
Thread
STM32: Komisches Verhalten zwischen USB VCP und GPIO
Windows den VCP nicht mehr und meldet nur noch Unbekanntes Gerät. Setze ich die Initialisierung von PortC nach die Initialisierung von USB, funktioniert es wieder?? mfg Funktioniert NICHT: [c] int main(void) { d_printf("\fStarting...\n"); // Set SysTick to 1ms SysClock_Init();
-
Thread
Uhr und Dimmen mit Timer 1 Atmega8 gleichzeitig
Sorry der Fehler mit dem 2x aktivierten PORTC ist mir bekannt, sollte ganz oben eigentlich deaktiviert sein.
soll dieses Konstrukt bewirken: [code]dimm1: cpi subcount,10 breq ein1 ein1: cbi portc,1[/code] Wenn subcount 10 ist, wird nacj 'ein1' gesprungen - soweit klar. Wenn subcount ungleich 10 ist, wird der nächste Befehl ausgeführt - Der steht beim Label 'ein1' - somit ist die Prüfung und
-
Thread
SN74HC595N QH´-Pin dauerhaft HIGH
Mondstrahlen klingt plausibel...:) Aufbau: Standardbeschaltung: MOSI --> SER SCK --> SCK SS --> RCK PORTC, 3 --> OE Pins am SN74HC595N: MR --> 5V QA bis QH --> LEDs GND --> 0V Vcc --> 5V QH´ --> SER des nächsten Latches Ansteuerung per SPI Reicht das? Grüße Leopold
SPI-Bus funktioniert normal: CPOL = 0 CPHA = 0 Frequenz: 1 MHz Master-Mode MOSI, SCK, SS und PORTC, 3 als Ausgang gesetzt --> Mit Oszi nachgemessen, stimmt alles (Datensignal ist da, Clock ebenfalls, OE geht zu Beginn der Übertragung auf HIGH damit LEDs nicht flackern, RCK geht zu Beginn der
-
Thread
I2C, Programm "crashed" beim Sende Versuch
define SDA 1 #define SCL 0 #define SDA_PORT PORTC #define SCL_PORT PORTC [/c] für Atmega32. Das hatte ich bisher noch nirgends gelesen :( Das init_i2c läuft jetzt durch, aber das Lesen der Sekunden klappt noch nicht
-
Thread
Strukturierte AVR-Assembler-Programmierung Gesperrt
in LEDport,PORTC eor LEDport,bitmask ; toggle masked LED position out PORTC,LEDport IF LEDcnt == #7 ldi bitmask,0b00_0001 ; reload bitmask ELSE lsl bitmask
in LEDport,PORTC eor LEDport,bitmask ; toggle masked LED position out PORTC,LEDport IF LEDcnt == #7 ldi bitmask,0b0010_0000 ; reload bitmask ELSE lsr
-
Thread
AVR Anfang / Flash geht aber Programm scheint nicht zu laufen
DDRC = 0xFF; DDRD = 7; while (1) { cnt++; PORTC = cnt; } } Bei den Fuses bin ich mir auch keiner Schuld bewußt -> Bild Fuses Ich bin der Meinung am Port C von C0 an immer langsamere Rechtecksignale sehen zu müssen.... Aber zu sehen ist
nicht benoetigt auskommentieren while (1) { cnt++; PORTC = cnt; _delay_ms(500) //500ms pause zur besseren kontrolle } } [/c] Vorraussetzung die Fuses sind auf intern. Oszillator hier 4MHz gesetzt. Gerhard
-
Thread
CAN Empfänger (ATMega16M1) asm einrichten, damit CAN nachrichtenbestätigt werden?
Ausgang für TX MCP2551 und Pin6 Ausgang für RS MCP2551 out ddrc, temp ldi temp, 0b10111011 out portc, temp ldi temp, 0b10000000 ;Pin7 Ausgang für LED out ddrd, temp CAN_init: ldi temp, (0<<ABRQ)|(0<<OVRQ)|(0<<TTC)|(0<<SYNTTC)|(0<<LISTEN)|(0<<TEST)|(0<<ENASTB)|(1<<SWRES) sts CANGCON, temp
t i,j; DDRB = 0x00; // alle Pins auf Eingang PORTB = 0xff; // Pullups an DDRC = (1<<PORTC2); // PORTC2 auf Ausgang PORTC = 0xff; // Pullups an DDRD = 0x00; // alle Pins auf Eingang PORTD = 0xff; // Pullup-Widerstände an DDRE = 0x00; // alle Pins auf Eingang PORTE =
-
Thread
PIC 16F723 und UART Problem
**************************** ;* ;* Pinbelegung ;* ---------------------------------- ;* PORTC: 0 ;* 1 ;* 2 ;* 3 ;* 4 ;* 5 ;* 6 RS-232-Ausgang zum Treiber ;* 7 RS-232-Eingang vom Treiber ;* ;**********************************************
-
Thread
Externer Interrupt
1 << ISC30); EIMSK = (1 << INT3); EIFR = (1 << INTF3); DDRC &= ~(1 << PC0); PORTC |= (1 << PC0); } [/c] Hier die ISR: [c] volatile unsigned int test = 0; ISR (EXT_INT3_vect) { test++; } [/c] Und in der main innerhalb der while(..) frage ich die Variable test ab:
Schön, wenn der PIN mittels Pullup auf high gehalten wird Gera schrieb im Beitrag #4955934: > PORTC |= (1 << PC0) wird das nur wenig bewirken. Schaltung, komplettes Program ...
-
Thread
Probleme beim JTAG debuggen mit Atmel ICE
Taktfrequenz 32000000 #define TestA PORTA.OUT #define TestB PORTB.OUT #define TestC PORTC.OUT #define TestD PORTD.OUT #define TestE PORTE.OUT #define TestF PORTF.OUT int main(void) { while(1) { TestA = 0xAA; //10101010 TestC = 0xAA; TestD
-
Thread
LCD Display I2C
NEU HINZUGEFÜGT, Schaltet die Betriebsspg. 5V auf das LCD und das I2C Modul Wait 1 Config Scl = Portc.0 'Konfigurieren von I2C Config Sda = Portc.1 Config Lcd = 16 * 2 Config I2cdelay = 1 Dim _lcd_e As Byte _lcd_e = 128
'Led4_lower' (Pin 02 / b1) Led 4 Relais 4 ' Waitms 1000 ' Portc.4 = 1 'Led5_betrieb' (Pin 26 / c4) Led 5 Betrieb ' Waitms 1000 ' Portc.3 = 1 'Led_ssm' (Pin 25 / c3)
-
Thread
Avr Xmega-A1 Explained
void setUpSerial() { // These pins are connected to USARTC0 // Set PINC3 (TXD0) as output PORTC.DIRSET = PIN3_bm; // Set PINC2 (RXD0) as input PORTC.DIRCLR = PIN2_bm; // USARTC0, 8 Data bits, No Parity, 1 Stop bit USART_Format_Set(&USART, USART_CHSIZE_8BIT_gc, USART_PMODE_DISABLED_gc
void setUpSerial() { // These pins are connected to USARTC0 // Set PINC3 (TXD0) as output PORTC.DIRSET = PIN3_bm; // Set PINC2 (RXD0) as input PORTC.DIRCLR = PIN2_bm; // USARTC0, 8 Data bits, No Parity, 1 Stop bit USART_Format_Set(&USART, USART_CHSIZE_8BIT_gc, USART_PMODE_DISABLED_gc
-
Thread
STK500 und AVR Studio 5
int main(void) { DDRC = 0x01; for(;;) { if(PIND & 0x01) PORTC |= 0x01; else PORTC &= ~0x01; } return 0; } Anschließend auf Tools --> STK 500 Da kann ich dann wählen zwischen COM6 und COM 1, habe beide ausprobiert. Wenn
-
Thread
ATTINY 817 Sleep Mode
#include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> int main(void) { PORTC.DIR |= (PIN0_bm); PORTC.DIR |= (PIN2_bm); PORTC.PIN3CTRL = 1 << PORT_PULLUPEN_bp | PORT_ISC_FALLING_gc; SLPCTRL.CTRLA = 1 << SLPCTRL_SEN_bp | SLPCTRL_SMODE_PDOWN_gc; sei(); //Enter Sleep mode asm("sleep"); while (1) { PORTC.OUTTGL = PIN2_bm; _delay_ms(1000); } } //PORTC INT ISR(PORTC_PORT_vect) { cli(); PORTC.INTFLAGS = 0xFF; PORTC.OUTTGL = PIN0_bm; sei(); } [/c]
-
Thread
Benörige Hilfe bei Grafikdisplay LM240120
sbit _RD = P3^1; ________________________________________ //Neu (GCC) #define LCDBUS PORTC |= 0xff #define _CS PORTB |= (1<<PB4) #define _RES PORTB |= (1<<PB5) #define _RS PORTB |= (1<<PB6) #define _WR PORTB |= (1<<PB7) #define _RD PORTB |= (1<<PB1)
Ja, hatte den PortC komplett auf Ausgang gesetzt: DDRC |= (0xff). Wenn ich mir das mit den ganzen Speicherfressenden Bits anschaue, kann das wohl auch rechnerisch nicht passen. Bei 120x240 Pixeln wären das ja schon
-
Thread
AtMega16 Timer Problem
Ausgang PORTB=0xFF; // alle Ausgänge auf 1 DDRC=0xFF; // Port C auf Ausgang PORTC=0x00; // alle Ausgänge auf 0 DDRD=0x40; // Port D auf Bit 7 (EAEEEEEE) Bit 0 PORTD=0xFF; // Pull Up aktivieren / Ausgänge auf 1 // TIMER TCCR0 = (0<<CS02) | (1<<
-
Thread
SPI zwischen zwei AtMega8
PORTD |= (1<<PD6); } } void changeDigitToOnAndOthersOff(int digit){ if(digit == 1){ PORTC |= (1<<PC0); PORTC &= ~((1<<PC1) | (1<<PC2) | (1<<PC3)); }else if(digit == 2){ PORTC |= (1<<PC1); PORTC &= ~((1<<PC0) | (1<<PC2) | (1<<PC3)); }else if(digit == 3){ PORTC |= (1<<PC2); PORTC &= ~((1<<PC0) | (1<<PC1) | (1<<PC3)); }else if(digit == 4){ PORTC |= (1<<PC3); PORTC &= ~((1<<PC0) | (1<<PC1) | (1<<PC2)); } } void multiplexDigits(){ if(multiplexCount
-
Thread
ATMega168, mySmart USB light und EEPROM Variable initialisieren
= set_ram.attentuations[set_ram.channelIndex]; sei(); while(1){ _delay_ms(300); PORTC ^= _BV(LED1); //OCR0B = 0x100F; usart_puts("Attentuation = "); unsigned char buffer[4]; itoa(attentuation, &buffer, 10); usart_puts(buffer); usart_puts("\n\r")
-
Thread
ATmega48PA Analog Comparator mit interner Referenzspannung und Interrupt
delay.h> void initAll() { //gpio port C pin 0 direction: output DDRC |= (1 << DDC0); PORTC &= ~(1 << PORTC0); //gpio port D pin 7 direction: output, no pull-up DDRD &= ~(1 << DDD7); PORTD &= ~(1 << PORTD7); //disable the digital input buffers DIDR1 |= (1<<AIN1D) |
-
Thread
UART empfängt nur 2 zeichen
4Taster gedrückt if(PINC & (1<<PINC0)){ //Btn 1 gedrückt _delay_ms(60); PORTC |= (1<<PORTC4); _delay_ms(60); PORTC &= ~(1<<PORTC4); sendByte[8] = 0x01; char *test = "1234567"; // rs485_putAddr(0x42); rs485_puts
test); //_delay_ms(100); } if(PINC & (1<<PINC1)){ //Btn 2 gedrückt PORTC |= (1<<PORTC5); _delay_ms(100); PORTC &= ~(1<<PORTC5); // sendByte[8] = 0x02; rs485_putAddr(0x42); rs485_puts(sendByte,sizeof(sendByte));
-
Thread
BASCOM: Byte Array an I2C RGB LED
base + 2) Dim Greenvalue As Byte , Redvalue As Byte , Bluevalue As Byte '******** Config Sda = Portc.4 Config Scl = Portc.5 Do Greenvalue = 0 : Redvalue = 255 : Bluevalue = 255 ' define a color 'Farbwerte besser in einer Tabelle bereitstellen? Performance? 'Colors_byte_array
-
Thread
Bascom Syntax - Error
ja intern. Meine Vermutung hier: Es sind 2 Library eingebunden. Config Lcdpin = Pin , Db4 = Portc.5 , Db5 = Portc.4 , Db6 = Portc.3 , Db7 = Portc.2 , E = Portc.6 , Rs = Portc.7 Config Lcd = 20 * 4 und Config Dcf77 = Pinb.4 , Timer = 1 , Debug = 1 , Check = 1 , Inverted = 1 Finde keinen Ansatz
-
Thread
UART Problem - Array Empfangen
delay_ms(100); PORTD &= ~(1<<PORTD6); //LED AN } if(uart_string[8] == 0x02){ //PORTC &= ~(1<<PORTC4); //LED AN PORTD |= (1<<PORTD4); //LED AN _delay_ms(200); PORTD &= ~(1<<PORTD4); //LED AN _delay_ms(200); UCSR0A |= (1<<MPCM0); } [/c]
-
Thread
Suche E2PROM Manager für STM32F10x
PortA SCL pin RCC_AHB1PeriphClockCmd(I2C_PERIPH_SDA_PORT, ENABLE); // Enable clock für PortC SDA pin I2C_Cmd(I2C_CHANNEL, DISABLE); // I2C abschalten, damit Bus still bleibt // Port mit SCL einrichten GPIO_InitStruct.GPIO_Pin = I2C_SCL_PIN;
-
Thread
4x20-LCD läuft nicht richtig
Dabei scheitere ich zur Zeit an der Hürde, mit if einen Intervall abzufragen: lcddata=0x54; PORTC=lcddata; if ((lcddata >= LCD_LINE1)&&(lcddata < (LCD_LINE1+LCD_ROWS)));// 0x00 ... 0x14 { *line=1; *row=(lcddata-LCD_LINE1)+1;// 0x01 PORTC=(lcddata-LCD_LINE1)+1;// 0x00 - 0x00 + 0x01
bool lcd_nextline(void) { unsigned char line = 0x00, row = 0x00; lcd_getlr(&line, &row); PORTC=line; // siehe lcd_main, erwünschter Ausgabewert: 0x01, 0x02, 0x03 // aaber: // original mit switch/case: lcd_getlr zählt 0x01, 0x02, 0x00 // meine eigene, mit if: lcd_getlr zählt 0x01
-
Thread
PIC-Register Verhalten
Init ] movlb 0xFF incf PORTA,w movwf PORTA movwf PORTB movwf PORTC movwf PORTD [usw usf] [/avrasm] RA6 und RA7 werden für den Externen Quarz genutzt, daher tat sich die Vermutung auf, dass diese Bits evtl. deaktiviert werden. Tatsächlich hat es
ANSELA clrf TRISA clrf PORTB clrf ANSELB clrf TRISB clrf PORTC clrf ANSELC clrf TRISC clrf PORTD clrf ANSELD clrf TRISD ;movlw 0xFF ;movwf PORTA ;movwf PORTB ;movwf PORTC ;movwf
-
Thread
Diamex ISP will nicht
angeschlossen. Jetzt konnte folgenden Code flashen [code] $regfile = "m328pdef.dat" Config Portc.5 = Output Do Portc.5 = 1 Waitms 800 Portc.5 = 0 Waitms 800 Loop End [/code] Jetzt blinkt meine LED aber nicht in einem 800ms Abstand (immerhin blinkt sie
angeschlossen. Jetzt konnte folgenden Code > flashen > $regfile = "m328pdef.dat" > > Config Portc.5 = Output
-
Thread
BASCOM AVR Bedeutung
ja. Anscheinend doch nicht. so gehts ------------------ Config PORTA = Output Config PORTC = Output Config PORTE.4 = Output Config PORTE.5 = Output Config PINB.5 = Input Set PORTE.4 Set PORTE.5 ------------------- so geht's nicht ------------------- Config
-
Thread
C++ RS232 Timeout-Problem ?
sta (t_lo),y ; save lda #$40 sta portc ; set ack (pc6) asl sta portc ; and delete ack - lda portc cmp #$80