-
Thread
1Mbit I2C Eeprom - nur lesen möglich. Tomaten auf den Augen.
$framesize = 32 $swstack = 32 $hwstack = 32 $baud = 115200 $crystal = 20e6 Config 1wire = Portc.7 $lib "i2c_twi.lbx" Config Scl = Portc.0 'Ports fuer IIC-Bus Config Sda = Portc.1 Config Twi = 100000 ' Takt 100kHz
-
Thread
Multiplexing auf einer Binäruhr
mein problem: Ich bin gerade in C an der Displayansteuerung. Diese erfolgt mit Multiplexing. PORTC fungiert hierbei als "enable" signal, hiermit kann ich einfach eine der anzeigen aktivieren (stunde, minute, sekunde) und PORTD ist der Datenport, an den einfach eine Zahl ausgegeben werden kann und
-
Thread
ATmega 1284p Port C
Codebeispiel: [c] int main(void){ pwm_init(); while(1){ DDRC = 0b00000000; PORTC = 0b00000000; _delay_ms(1); DDRC = 0b00111111; PORTC = 0b00000000; _delay_ms(1); DDRC = 0b00111111; PORTC = 0b00111111; _delay_ms(1); } } [/c] vielen Dank
R16,0b00000111 andi R17,0b00111000 or R16,R17 cli ;ab hier nur nötig, wenn PORTC6/7 in R17,DDRC ;anderweitig genutzt werden sollen andi R17,0b11000000 ;ansonsten entfällt das alles bis or R16,R17 ;einschließlich sei ;dieser Zeile
-
Thread
Atmega32 hat unerklärliche Spannungseinbrüche an 4 Pins
Ausgang zu konfigurieren. Dann hast du nämlich einen Eingang und schaltest mit Schribzugriffen auf PORTC nur den internen Pull-Up Widerstand ein und aus. Der hat 50-100k Ohm. Andere Möglichkeit: Schau mal ins Datenblatt auf Seite 5 und Seite 61-62. Da steht was zu JTAG und Port C. Wenn JTAG per
-
Thread
stm8 springt in NonHandledInterrupt
to set a breakpoint on the following instruction. */ } /** * @brief External Interrupt PORTC Interruption routine. * @par Parameters: * None * @retval * None */ #ifdef _COSMIC_ @far @interrupt void EXTI_PORTC_IRQHandler(void) #else /* _RAISONANCE_ */ void EXTI_PORTC_IRQHandler
-
Thread
ATXMEGA Timer Interrupt ISR Problem
Wie PORTC erlaubt zugriff? Ich habe den oben im meinem Code als Ausgang gesetzt nur um die Laufzeit der ISR Routine zu überprüfen. Theoretisch mir der Einstellung und dem 32MHz Oszi sollte der Zyklus 64 us (
Wo genau in deinem code setzt du portc?
-
Thread
AVR Lauflicht
TIMER0_COMPA_vect) { cli(); if (s == 1) { if (d == 1) { PORTC = r; r = r >>1; if (r == 0) { r = 0x80; } } else { PORTC = l; l = l <<1; if (l == 0x80) { l = 0x00;
Marco G. schrieb im Beitrag #4130597: > PORTC = l; > l = l <<1; > if (l == 0x80) > { > l = 0x00; > } Durch das l = 0x00; hast du dann wenig zum rumscheiben, versuchs mal mit l = 0x01;
-
Thread
Anfängerfrage die.te
auf Lochraster löten und in ein Gehäuse klöppeln. Habe am Atmega 8 einen Port komplett ungenutzt(PORTC). Die Pins von PORTC sind in der Software überhaupt nicht vertreten. Kann man diese Pins einfach nur festlöten, oder empfiehlt es sich alle offenen Pins mit 10K gegen Masse zu verbinden damit
-
Thread
Mega32, LCD HD44780 will nicht.
1000000 Config Lcdpin = Pin , Db4 = Porta.7 , Db5 = Porta.6 , Db6 = Porta.5 , Db7 = Porta.4 , E = Portc.6 , Rs = Portc.7 Config Lcd = 16 * 2 Cls Lcd "Hallo" End [/code] RW ist auf GND gelegt, hab Mehrmals Belegung mit Multimeter durchgecheckt, stimmt soweit. An einen ATMega8 funktioniert
-
Thread
Mikrocontroller kommt aus dem Takt ;D
0b00001111; DDRB = 0b00000110; DDRD = 0b00000010; CLEAR_BIT(PORTB,2); //Output Enable SET_BIT(PORTC,3); //SDI //Ebenen CLEAR_BIT(PORTC,2); CLEAR_BIT(PORTC,1); CLEAR_BIT(PORTC,0); /** Hauptschleife **/ for(;;) { for (int i= 0; i<1;i++) { SET_BIT(PORTC,3); //SDI
_delay_ms(1); SET_BIT(PORTB,1); _delay_ms(1); SET_BIT(PORTC,3); //SDI CLEAR_BIT(PORTB,1); _delay_ms(1); SET_BIT(PORTB,1); _delay_ms(1); SET_BIT(PORTC,3); //SDI CLEAR_BIT
-
Thread
mit µC Sinus erzeugen + Amplitudenmodulation
(byte_1 & (0x01 << 5)) { // Pin auf High PORTC |= (1<<PC2); } else { // pin auf Low PORTC &=~ (1<<PC2); } // *************************** PortC1 ************ if
if (byte_1 & (0x01 << 7)) { // Pin auf High PORTC |= (1<<PC0); } else { // pin auf Low PORTC &=~ (1<<PC0); } }
-
Thread
Free running mode ADC
Wertes von ADCresult gemäß vorgegebener Tabelle setzen if((ADCresult>=0) && (ADCresult<128)){ PORTC &= ~(1<<PC1); PORTC &= ~(1<<PC4); PORTC &= ~(1<<PC5); } else if((ADCresult>127) && (ADCresult<512)){ PORTC &= ~(1<<PC1); PORTC &= ~(1<<PC4); PORTC |= (1<<PC5); } else if((ADCresult>511) && (ADCresult<769)){ PORTC &= ~(1<<PC1); PORTC |= (1<<PC4); PORTC |= (1<<PC5); } else if((ADCresult>768) && (ADCresult<1024)){ PORTC |= (1<<PC1); PORTC |= (1<<PC4); PORTC |= (1<<PC5);
-
Thread
RGB LED 3x3x3
0b00001111; DDRB = 0b00000110; DDRD = 0b00000010; CLEAR_BIT(PORTB,2); //Output Enable SET_BIT(PORTC,3); //SDI //Ebenen SET_BIT(PORTC,2); SET_BIT(PORTC,1); CLEAR_BIT(PORTC,0); /** Hauptschleife **/ while(true) { //CLK CLEAR_BIT(PORTB,1); _delay_ms(1000);
Ulrich schrieb im Beitrag #4119608: > SET_BIT(PORTC,3); //SDI Und ? Die LEDs sind aus, was willst du da sehen ?
-
Thread
Zugriff auf Ports über einen Pointer od Ähnlichem für PIC18F (nicht Bit Addressierbar)
PORTE; bitmask = 1 << 6; case 11: port_ptr = &PORTE; bitmask = 1 << 7; case 12: port_ptr = &PORTC; bitmask = 1 << 4; case 13: port_ptr = &PORTC; bitmask = 1 << 5; case 14: port_ptr = &PORTC; bitmask = 1 << 6; case 15: port_ptr = &PORTC; bitmask = 1 << 7; case 16: port_ptr =
unsigned char *port; unsigned char mask; }pin_pointer; const pin_pointer pins[4] = { &PORTC, 1 << 0, // PORTC pin 0 RC0 &PORTC, 1 << 1, // PORTC pin 1 RC1 &PORTC, 1 << 2, // PORTC pin 2 RC2 &PORTC, 1 << 3, // PORTC pin 3 RC3 ... etc...
-
Thread
AVR Studio 6 Simulator Gesperrt
7372800UL #include <util/delay.h> #include <avr/io.h> int main(void) { DDRC|=(1<<PC1); PORTC=(1<<PC1); while(1) { PORTC&=~(1<<PC1); _delay_ms(1); PORTC|=(1<<PC1); _delay_ms(1); } return 0; } [/c] Weshalb funktioniert der Simulator nicht? Liegt
-
Thread
"value computed not used"
PIN, PORTA |= PIN) :\ ( (&PORT==&PORTB) ? (DDRB &= ~PIN, PORTB |= PIN) :\ ( (&PORT==&PORTC) ? (DDRC &= ~PIN, PORTC |= PIN) :\ ( (&PORT==&PORTD) ? (DDRD &= ~PIN, PORTD |= PIN) :\ 0 ) ) )\ ) #define ENC_A_GPIO PORTC #define ENC_A_Pin (1<<PC3) // ... int
) ? (DDRB &= ~(1 << 1) | (1 << 2), PORTB |= (1 << 1) | (1 << 2)) :\ ( (&PORTC==&PORTC) ? (DDRC &= ~(1 << 1) | (1 << 2), PORTC |= (1 << 1) | (1 << 2)) :\ ( (&PORTC==&PORTD) ? (DDRD &= ~(1 << 1) | (1 << 2), PORTD |= (1 << 1) | (1 << 2)) :\ 0 ) ) )\ ) [/c]
-
Thread
Interne Pulldown widerstände?
old_key = r22 .def new_key = r23 //Defines .equ XTAL = 4000000 .equ DISPLAY1_PORT = PORTC .equ DISPLAY1_PIN_RS = 4 .equ DISPLAY1_PIN_E = 5 .equ DISPLAY2_PORT = PORTD .equ DISPLAY2_PIN_RS = 4 .equ DISPLAY2_PIN_E = 5 //Datenrichtung Portbelegung //PORTA = ADC ldi temp1, 0x00
Unwichtige Funktion welche berechnungen ergebnisse im SRAM speichert verändert keine Register out PORTC, menu_item//Dient zum Debuggen des Timers in temp1, PINB out PORTD, temp1 // Debug info von PINB Ohne ein Taster zu drücken steht in temp1 0x00 aber wieso wenn doch die PullUp Widerstände an sind
-
Thread
UV-Laserdrucker II
// Nutze Quarz mit 4-fach PLL-Multiplexer (32 MHz) als Takt } void DMA_init (void) { PORTC.DIRSET = PIN0_bm; PORTC.OUTCLR = PIN0_bm; TCC0.CTRLB = (TCC0.CTRLB & (~(TC0_CCAEN_bm | TC0_CCBEN_bm |TC0_CCCEN_bm | TC0_CCCEN_bm | TC0_WGMODE_gm))) | TC0_
// Nutze Quarz mit 4-fach PLL-Multiplexer (32 MHz) als Takt } void DMA_init (void) { PORTC.DIRSET = PIN0_bm; PORTC.OUTCLR = PIN0_bm; EVSYS_CH0MUX = EVSYS_CHMUX_TCC0_CCA_gc; // Event 0 auf CCA aktivieren TCC0.CTRLB = (TCC0.CTRLB & (~(TC0
-
Thread
µController programmierung
PORTA.DIR &= ~PIN0_bm; //PORTA.0 als Eingang definiert (1.5V = 1.2A) /*Reedkontakt init*/ PORTC.DIR &= ~PIN5_bm; //PORTC.5 auf Eingang Reedkontakt PORTC.PIN5CTRL |= PORT_OPC_PULLUP_gc; //Pull-Up Widerstand am PORTC.5 aktiv (Reedkontakt) /*LEDs init*/ PORTC.DIR = 0x1C; //PORTC auf Ausgang LEDs /*PORTC.OUT &= ~ PIN3_bm; //PORTC.3 auf high WW-LEDs->aus*/ /*PORTC.OUT &= ~ PIN2_bm; //PORTC.2 auf high KW-LEDs->aus*/ /*System ON/OFF*/ PORTC.DIR |= PIN1_bm; //PORTC.1 auf Ausgang ON/OFF
-
Thread
Dmx mit Bascom generiert
X = 0 Dmx_werte(1) = 255 Do If X = 0 Then Portc.3 = 1 Portc.4 = 1 Toggle Portc.3 'Reset Waitus 88 Portb.0 = 1 Waitms 10 Print 0 Waitus 20
senden End If If Sendezaehler > 24 Then Gosub Senden '500ms Sendetakt Portc.1 = 0 Power Idle Portc.1 = 1 Loop Senden: 'Break Ausgang = 0 Portc.0 = 1 For I = 0 To 60 nop Next I Portc.0 = 0 Ausgang = 1 For I = 0 To 20
-
Thread
LED-Treiber Ansteuern Software
/*PORTC.4 auf low UV-LEDs->aus*/ //PORTC.OUT &= ~ PIN3_bm; /*PORTC.3 auf high WW-LEDs->aus*/ //PORTC.OUT &= ~ PIN2_bm; /*PORTC.2 auf high KW-LEDs->aus*/ PORTC.OUT |= PIN3_bm; /*PORTC.3 auf high WW-LEDs->an 100%*/ PORTC.OUT |= PIN2_bm; /*PORTC.2 auf high KW-LEDs->an 100%*/ PORTC.DIR = 0x1C; /*PORTC auf Ausgang LEDs*/ /*System ON/OFF*/ PORTC.DIR |= PIN1_bm; /*PORTC.1 auf Ausgang ON/OFF*/ PORTC.OUT
-
Thread
LCD_Modul_TG12864B_03
Jörg P. schrieb im Beitrag #4097958: > wenn ich als Datenport PortC und als Command die PA0-PA5 nehme. -----------------------------^----------------------^---^-------- Hä? Erst mal Programm und Schaltplan posten.
Du etwas mehr in dem Code ändern (und außerdem den Code verstehen lernen). Schau mal, ob Du auf PortC JTAG aktiviert hast.
-
Thread
Tasterabfrage xmega8E
/*PORTC.2 auf low UV-LEDs->aus*/ PORTC.OUT &= ~ PIN3_bm; /*PORTC.3 auf high WW-LEDs->aus*/ PORTC.OUT &= ~ PIN4_bm; /*PORTC.4 auf high KW-LEDs->aus*/ //PORTC.OUT |= PIN3_bm; /*PORTC.3 auf high WW-LEDs->an 100%*/ //PORTC.OUT |= PIN4_bm; /*PORTC.4 auf high KW-LEDs->an 100%*/ PORTC.DIR = 0x1C; /*PORTC auf Ausgang LEDs*/ /*System ON/OFF*/ PORTC.DIR |= PIN1_bm; /*PORTC.1 auf Ausgang ON/OFF*/ PORTC.OUT
-
Thread
Dumme Frage zum "C" mit AVR's
Makros à la: [c]#define POWER_LED_PORT PORTB #define POWER_LED_PIN 5 #define STATUS_LED_PORT PORTC #define STATUS_LED_PIN 1[/c]
digitalPinToPortReg(P) \ (((P) >= 0 && (P) <= 7) ? &PORTD : (((P) >= 8 && (P) <= 13) ? &PORTB : &PORTC)) #define digitalPinToDDRReg(P) \ (((P) >= 0 && (P) <= 7) ? &DDRD : (((P) >= 8 && (P) <= 13) ? &DDRB : &DDRC)) #define digitalPinToPINReg(P) \ (((P) >= 0 && (P) <= 7) ? &PIND : (((P) >= 8 && (P
-
Thread
HC-SR04 Atmega644PA
ERROR -1 #define NO_OBSTACLE -2 void HCSR04Init() { } void HCSR04Trigger() { PORTC |= (1 << PC0); //high _delay_us(15); //wait 15uS PORTC &= ~(1<<PC0); //low } int GetPulseWidth() { int i, result; //Wait for rising edge for(i = 0; i < 60; i++) {
-
Thread
Ungewollte Reaktion auf entprellte Tasten
#warning kein F_CPU definiert #endif #define KEY_DDR DDRC #define KEY_PORT PORTC #define KEY_PIN PINC #define KEY_mitte 7 #define KEY_links 3 #define KEY_rechts 4 #define KEY_oben 6 #define KEY_unten 2 #define ALL_KEYS (1<<KEY_mitte
<< PB0); DDRC = 0x00; // Eingänge DDRC = ((1 << DDC0) | (1 << DDC1)) ; // PC0-1 Ausgang PORTC = 0xFF; PORTC &= ~((1<<PC0) | (1 <<PC1)); DDRD = 0xFF; // Alle Pins von Port D als Ausgang PORTD = (0<<PD0)| (0<<PD1)|(0<<PD2)|(0<<PD3)|(0<<PD4)|(0<<PD5)|(0<<PD6); DDRA = 0xFF
-
Thread
Nur Errors vom siemens TC35
Porta.4 Relais6 Alias Porta.5 Relais7 Alias Porta.6 Relais8 Alias Porta.7 Porta = 0 Config Portc.0 = Input ' rauf Config Portc.1 = Input ' runter Config Portc.2 = Input ' O K
Declare Sub Sms_auswerten() Declare Sub Sende_rueckmeldung() ' ----- Voreinstellungen ------- Portc.0 = 1 ' Taster Portc.1 = 1 ' Taster Portc.2 = 1 ' Taster
-
Thread
AVR 8bit auch für größere Projekte?
einfach sieht z.B. die 9600er Initialisierung einer 32MHz Xmega UART in Asm aus: ldi r16,$a8 sts PORTC_DIR,r16 ldi r16,207 sts USARTC0_BAUDCTRLA,r16 ldi r16,$20 sts USARTC0_CTRLA,r16 ldi r16,$18 sts USARTC0_CTRLB,r16 Ende Gelände.
sieht z.B. die 9600er Initialisierung einer 32MHz Xmega > UART in Asm aus: > > ldi r16,$a8 > sts PORTC_DIR,r16 > ldi r16,207 > sts USARTC0_BAUDCTRLA,r16 > ldi r16,$20 > sts USARTC0_CTRLA,r16 > ldi r16,$18 > sts USARTC0_CTRLB,r16 > > Ende Gelände. Du schreibst auch 3 Register im UART und
-
Thread
html in c array
=\"B\" %PORTC1>\r\n" "<span class=\"Stil2\">Port C Pin 1</span></p>\r\n" "<p><input type=\"checkbox\" name=\"OUT\" value=\"C\" %PORTC2>\r\n" "<span class=\"Stil2\">Port C Pin 2</span></p>\r\n" "<p><input type=\"checkbox\" name=\"OUT\" value=\"D\" %PORTC3>\r\n" "<span class=\"Stil2\">Port C Pin 3</span></p>\r\n" "<p><input type=\"checkbox\" name=\"OUT\" value=\"E\" %PORTC4>\r\n" "<span class=\"Stil2\">Port C Pin 4</span></
-
Thread
16x2 LCD nur eine Zeile mit Bitte den Code zu prüfen
*string); void LCD_blink(); void LCD_scroll(unsigned char direction); #define LCD_DATA_PORT PORTC #define LCD_DATA_DDR DDRC #define LCD_DATA_PIN PINC #define LCD_CNTRL_PORT PORTD #define LCD_CNTRL_DDR DDRD #define LCD_CNTRL_PIN PIND #define LCD_RS_PIN 2 #define LCD_RW_PIN
-
Thread
DCF77-Programm-Multitaskingproblem
Port-Richtungsregister DDRC &= ~(1<<PC1); //PC1 Eingang (0) DDRB = 0xff; //Initialisieren der Ports PORTC |= (1<<PC1); //PC1 Pull-Up gesetzt (1) lcd_init(); //Initialisierung des LCDs // Timer 0 konfigurieren TCCR0 = (1<<WGM01) | (1<<CS00) | (1<<CS02); //CTC Modus (1), Prescaler 1024 (1
-
Thread
AVR Timer Fehler
#include <util/delay.h> #define MCU = AVR_AT90PWM3B #define F_CPU 4000000UL #define PWM_out PORTC #define PRTIM0 = 0; #define PRTIM1 = 0; int main(void) { DDRC = 0xFF; TCCR1A = 0b11110011; //Flag Einstellungen --> setzten bei Compare Match, clear
#include <util/delay.h> #define MCU = AVR_AT90PWM3B #define F_CPU 4000000UL #define PWM_out PORTC #define PRTIM0 = 0 #define PRTIM1 = 0 #define DDRC = 0xFF #define TCCR1A = 0b11110010 //Flag Einstellungen --> setzten bei Compare Match, clear at Top , Modus auswählen (Bit0 und
-
Thread
STM32F0 Discovery Port C Pin 1 and Pin 2 problem
Ports bleiben auf low. Was kann ich noch machen. Ich hoffe der Code ist ok, alle anderen pins des PortC arbeiten wie man das so vermutet. Hat jemand eine Ideee ? Ich bin recht neu in der arm Sache und brauche etwas Hilfe hier. Mein Code is weiter unten .. Danke fuer Eure Hilfe. [C] #include
-
Thread
Auslesung von DS1307 RTC
define PIN_DIMMER3 5 //PA5 #define PIN_DIMMER4 4 //PA4 #define PORT_DIMMER_56 PORTC #define DDR_DIMMER_56 DDRC #define PIN_DIMMER5 1 //PC1 #define PIN_DIMMER6 0 //PC0 #define SET_DIMMER1 PORT_DIMMER_1234 &= ~(1<<PIN_DIMMER1) // set DIMMER1 #define CLEAR_DIMMER1
PB2 #define PIN_SPI_SCK 1 // PB1 #define PIN_SPI_SS 0 // PB0 #define PORT_SPI_CS PORTC #define DDR_SPI_CS DDRC #define PIN_SPI_CS1 7 // PC7 #define PIN_SPI_CS2 6 // PC6 #define PIN_SPI_CS3 5 // PC5 //LED 1-3 #define PORT_LED PORTC #define DDR_LED
-
Thread
Mehrere Ausgänge über Alias zuasmmenfügen
D3 Alias Porta.3 E1 Alias Porta.4 E2 Alias Porta.5 E3 Alias Porta.6 F1 Alias Porta.7 F2 Alias Portc.7 F3 Alias Portc.6 G1 Alias Portc.5 G2 Alias Portc.4 G3 Alias Portc.3 H1 Alias Portc.2 H2 Alias Portc.1 H3 Alias Portc.0 I1 Alias Portd.7 I2 Alias Portd.6 I3 Alias Portd.5 Farbe1 Alias
And Porta.2 And Porta.3 Strebe E Alias Porta.4 And Porta.5 And Porta.6 Strebe F Alias Porta.7 And Portc.7 And Portc.6 Strebe G Alias Portc.5 And Portc.4 And Portc.3 Strebe H Alias Portc.2 And Portc.1 And Portc.0 Strebe I Alias Portd.7 And Portd.6 And Portd.5 LG marcel
-
Thread
DCF77 Code, Paritätsprüfung klappt nicht
].Zahl=0; } } void Ausgabe(segment *segstr) { static short int Z=0; Z++; PORTC=0x00; PORTA=0xFF; switch(Z) { case 0: PORTC=0x04; //Einer Sek BCDDecode(&segstr[0]); break; case 1: PORTC=0x08; //Zehne Sek BCDDecode(&segstr[1]); break; case 2: PORTC=0x10; //Einer Min BCDDecode(&segstr[2]); break; case 3: PORTC=0x20; //Zehne Min BCDDecode(&segstr[3]); break; case 4: PORTC=0x40; //Einer Std BCDDecode
-
Thread
Empfangen über SPI von ADC-Daten
Trailing-Edge } uint16_t SPI_receive_ADC() { cli(); // Interrupts deaktivieren PORTC |= (1<<PC0); // ADC Enable aus PORTC &= ~(1<<PC0); // Enable-Pin für ADC aktivieren uint16_t averageData = 0; averageData = (SPI_receive_byte()<<8); averageData |= SPI_receive_byte(); PORTC |= (1<<PC0); // ADC Enable aus sei(); // Interrupts aktivieren return averageData; } uint8_t SPI_receive_byte() // Byte empfangen { SPDR = 0x00; // Wert in Buffer schreiben