-
Thread
LANC Implementierung
] == 0x30) PORTC |= (1<<PC5); } return 0; } [/c]
nicht ausgeführt. Ich verstehe das nicht. [c]lanc[4] = 0xEB; if(lanc[4] == 0xEB) PORTC &= ~(1<<PC5);[/c]
-
Thread
SPI ATmega8L Beschleunigungssenor
**************************************/ #define SPIF 7 #define SS PORTB.2 #define LED_rot PORTC.3 // Output rote LED #define LED_gelb PORTC.2 // Output gelbe LED #define LED_gruen PORTC.1 // Output grüne LED #define BUZZER PORTC.0 // Output Buzzer
Func2=Out Func1=Out Func0=Out // State6=T State5=T State4=T State3=0 State2=0 State1=0 State0=1 PORTC=0x01; DDRC=0x0F; // Port D initialization // Func7=In Func6=Out Func5=In Func4=In Func3=In Func2=In Func1=Out Func0=In // State7=T State6=0 State5=T State4=T State3=T State2=T State1=0 State0
-
Thread
Fragen zu Bascom DMXSLAVE
Kanal_7 Alias Porta.2 Kanal_8 Alias Porta.1 Kanal_9 Alias Porta.0 'interne Pullup aktivieren Portc.0 = 1 Portc.1 = 1 Portc.2 = 1 Portc.3 = 1 Portc.4 = 1 Portc.5 = 1 Portc.6 = 1 Portc.7 = 1 Porte.2 = 1 Porte.1 = 1 Portd.5 = 1 Portd.4 = 1 Portd.3 = 1 Config Timer0 = Timer , Prescale
Kanal_7 Alias Porta.2 Kanal_8 Alias Porta.1 Kanal_9 Alias Porta.0 'interne Pullup aktivieren Portc.0 = 1 Portc.1 = 1 Portc.2 = 1 Portc.3 = 1 Portc.4 = 1 Portc.5 = 1 Portc.6 = 1 Portc.7 = 1 Porte.2 = 1 Porte.1 = 1 Portd.5 = 1 Portd.4 = 1 Portd.3 = 1 '##################START####
-
Thread
AVR NET-IO / ATMEGA32 JTAG/IO/PWM
0b00000011; // PC0 und PC1 werden als Output gesetzt. Der Rest als Input //PC0 und PC1 auf high setzen PORTC |= (1<<PC0); PORTC |= (1<<PC1); goto GOTOMARKE1; //Springt wieder ins Hauptmenu und wartet auf Eingabe } [/c] Ich hoffe es ist verständlich, was mein Problem ist und ihr könnt mir helfen
0b00000011; // PC0 und PC1 werden als Output gesetzt. Der Rest als Input //PC0 und PC1 auf high setzen PORTC |= (1<<PC0); PORTC |= (1<<PC1); goto GOTOMARKE1; //Springt wieder ins Hauptmenu und wartet auf Eingabe } } static int uart_putchar(char c, FILE *stream) { if (
-
Thread
Was ist hier denn falsch µc kaputt?
PORTC, r18 ;alles aus out PORTD, r18 main8: LDI R17, 0b00000001 ;aufbau in orange main9: ROR r17 out PORTA, r17 out PORTC, r17 CPI r17, 255 call warten
out PORTC, r19 out PORTD, r19 nop call warten out PORTA, r18 ;alles aus out PORTB, r18 out PORTC, r18 out PORTD, r18 rjmp main ; warte
-
Thread
Grafik LCD am PortC geht am Port B nicht! atm8 & KS0108
Forum, ich bitte um Nachsicht :-) Seit 2 Tagen versuche ich mein GLCD mit KS0108 erfolglos vom PortC auf PortB "umzuschalten", natürlich mit Anpassung des Codes. Am PortC funktioniert das Display einwandfrei! Ich habe überprüft, ob alle PINs des Atmega8L am PortB funktionieren. Mit dem "Hello
h Datei für die Konfiguration der Ports. Hier habe ich nur // Ports #define LCD_CMD_PORT PORTC // Command Output Register #define LCD_CMD_DIR DDRC // Data Direction Register for Command Port PORTC -> PORTB und DDRC -> DDRB geändert. In der .C Datei sind keinerlei Angaben über
-
Thread
Bit folge einlesen
dann r12 0d00101101 und dann r13 0b01000110. 000101000010110101000110 So kommen die Daten auf PORTC 0 also auf dem Pin C0 eines atmega16 Bitte in C und für ein Anfänger ich bin noch nicht so gut in C.
ausmaskieren und prüfen ob es gesetzt ist if (MeinArray[ArrayIndex] & (0x01 << BitIndex)) { PortC |= 0x01; // Bit 0 setzen } else { PortC &= ~0x01; // Bit 0 löschen } } } [/c]
-
Thread
Frequenzzählen mit Bascom
Dankbar. $regfile = "4433def.dat" $crystal = 4000000 Dim A As Byte Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.5 , Rs = Portc.4 Config Lcd = 24 * 2 'configure lcd screen Config Portc = Output
-
Thread
Serielle Übertragung
was nicht heißt, dass es keines > gibt). Mit fehlt jedoch der ganze Code, z.B. um zu prüfen, dass PORTC > nirgendwo anders auftaucht, Hallo, nein PortC wird nur dort verwendet. > das Register „received“ bzw. ein Alias davon > nirgendwo anders verwendet wird .def temp = R16 .def received
from USART OUT PORTC, received POP temp ;Restore Status-Register OUT SREG, temp POP temp ;Retore temporary Variable RETI SerOut: LDI Temp, 31 SBIS UCSRA,UDRE RJMP
-
Thread
4433 Controler spinnt!
If PINB.2 = 1 Then Reset PORTB.0 Reset PORTB.1 Reset PORTB.3 Set PORTC.0 Reset PORTC.1 Reset PORTC.2 Reset PORTC.3 Set PORTC.4 Reset PORTC.5 Set PORTD.0 Reset PORTD.1 Reset PORTD.2 Reset PORTD.3 Set PORTD.4 Reset PORTD.5 Reset PORTD.6 Reset PORTD.7 Else Reset PORTB.0 Reset PORTB.1 Set PORTB.3 Reset PORTC.0 Reset PORTC.1 Reset PORTC.2 Reset PORTC.3 Reset PORTC.4 Reset PORTC.5 Reset PORTD.0 Reset PORTD.1 Reset PORTD.2 Reset PORTD.3 Reset PORTD.4 Reset PORTD.5 Reset
-
Thread
Mit dem ATmega8 Text auf einen Drucker ausgeben klappt nicht.
DDRA = 0xFF; // Daten-Port DDRC |= (1<<STROBE_PIN) // Strobe-Port PORTC |= (1<<STROBE_PIN); for(i=0; i<strlen(text); ++i) { PORTA = text[i]; PORTC &= ~(1<<STROBE_PIN); _delay_ms(3); PORTC |= (1<<STROBE_PIN); } [/c] bitte nur als Anregung mitnehmen
DDRA = 0xFF; // Daten-Port > DDRC |= (1<<STROBE_PIN) // Strobe-Port > PORTC |= (1<<STROBE_PIN); > > for(i=0; i<strlen(text); ++i) > { > PORTA = text[i]; > PORTC &= ~(1<<STROBE_PIN); > _delay_ms(3); > PORTC |= (1<<STROBE_PIN); > } [/code] das wuerde
-
Thread
Bascom 2 Pineingänge an 1 Ausgang
bestens, bis auf folgendes Problem ich muß 2 Leitungen (Pinc.5 + Pinc.4) zur selben Zeit an 1 Ausgang (Portc.1) schalten mein Code haut irgentwie nicht hin. Case 8 Portc.1 = Pinc.5 Portc.1 = Pinc.4 Waitms 200 Portc.0 = 0 Locate 1 , 10 Lcd "P9" Kann mir da
Ich kenne mich mit Bascom nicht aus, aber müsste es nicht so heißen: Case 8 Portc.1 = Pinc.5 + Pinc.4 Waitms 200 Portc.0 = 0 Locate 1 , 10 Lcd "P9"
-
Thread
GPS-Empfangsprobleme
PORTC |= (1 << PC4); // xxx1 xxxx -> IOR = 1, kein lesen PORTC |= ( 1 << PC0 ); // xxxx xxx1 -> CSA = 1 if (puffer & 1) { // prüfen auf data ready PORTC &= ~( 1 << PC0 ); // xxxx xxx0 -> CSA
; PORTC |= (1 << PC4); // xxx1 xxxx -> IOR = 1, kein lesen PORTC |= ( 1 << PC0 ); // xxxx xxx1 -> CSA = 1 while (!(puffer & 1)) { //warte bis data ready PORTC &= ~( 1 << PC0 ); / xxxx xxx0 ->
-
Thread
ATmega8 Summensignal auswerten
&= ~( 1 << PC1 ); if( (isumme[2] < 92) || (isumme[2] >102)) PORTC |= (1 << PC2); else PORTC &= ~( 1 << PC2 ); if( (isumme[3] < 92) || (isumme[3] >102) ) PORTC |= (1 << PC3); else PORTC &= ~( 1 << PC3 ); if( (isumme[4] < 92) || (isumme[4] >102)) PORTC |= (1 << PC4); else PORTC &= ~( 1 << PC4 ); if( (isumme[5] < 92) || (isumme[5] >102) ) PORTC |= (1 << PC5); else PORTC &= ~( 1 << PC5
-
Thread
UART Interrupt Probleme
uint8_t col = 0; volatile uint8_t row = 0; volatile uint8_t module = 0; void slm1608() { PORTC &= ~(1<<reset); //reset PORTC |= (1<<bright); PORTC |= (1<<reset); PORTC &= ~(1<<bright); PORTC &= ~(1<<reset); PORTC |= (1<<bright); //bright auf high PORTC |= (1<<brtwrt); /
<<brtclk); PORTC &= ~(1<<clock); PORTC &= ~(1<<red); PORTC &= ~(1<<green); } PORTC &= ~(1<<bright); _delay_us(200); PORTC |= (1<<bright); } if(module == 2) { PORTA
-
Thread
LCD Mit pc verbinden
Portd = Output 'C1=Ausgang -> LED Ddrc.1 = 1 Portb.1 = 1 'Taste an C0 -> PullUp Ddrc.0 = 0 Portc.0 = 1 Do Waitms 100 Cls Lcd "so habe ich was" Lowerline Lcd "am display.. " 'Taste auswerten If Pinc.0 = 0 Then 'LED -> an Portc.1 = 1 Else 'LED ->
aus Portc.1 = 0 End If Loop End [/code]
-
Thread
LEDs unterschiedlich hell funktioniert geht nicht per Methodenaufruf
// setBrightness(30,2); PORTC &= ~(1<<0); //dieselben Befehle der Methode mit eingesetzten Werten --> Funktioniert, LEDs leuchten unterschiedlich hell. _delay_us(1); PORTC |= (1<<0); PORTC &= ~(1<<1); _delay_us(15); PORTC |= (1<<1); PORTC &= ~(1<<2); _delay_us(30); PORTC |= (1<<2); // PORTC &= ~(1<<7); }; VG, partx
-
Thread
Bascom: Variable aufteilen für 7-Segment Anzeigen
'ATmega8-Deklarationen $crystal = 1000000 $baud = 4800 Config Portc.5 = Output Config Portc.4 = Output Config Portc.3 = Output Config Portc.2 = Output Config Portd.5 = Output Config Portd.6 = Output Config Portb.7 = Output Portb.0 = 1 Portd.7 = 1 Clock Alias Portc.5 Stout Alias Portc.4 Dat Alias Portc.3 Down Alias Pind.7 Up Alias Pinb.0 L1 Alias Portd.6 L2 Alias Portd.5 L3 Alias Portb.7 Clock = 0 Stout = 0 Dat = 0 Dim Zahl(3) As Integer
-
Thread
Uhrzeit stellen
// LEDs an PC0 auf Ausgang for(;;) { if( debounce( PINB, PB0 ) ) { PORTC ^= 1<<PC0; } if( debounce( PINB, PB1 ) ) { PORTC ^= 1<<PC1; } } } [/c] So funktioniert es jetzt. Beide LEDs schalten unabhängig voneinander. Taster drücken =
PORTC ^= 1<<PC1; counter2++; if( counter2 == 60 ) { counter2 = 0; } lcd_zahlausgabe(counter2, 2, 2); } } [/C]
-
Thread
18B20 auf 7 Segmentanzeige
Zustand Hardware immer noch korrekt entwerfen kannst. So schwer ist ein [C] ISR( ... ) { PORTC = 0; digit=(digit+1)&7; PORTD=segmentabbild[ziffer[digit]]; PORTC=1<<digit; } [/C] dann auch wieder nicht. (Und da hab ich dann auch gleich noch das Ghosting eliminiert, das in deiner Lösung
man und Du auch zum Initialisieren braucht. Plus den Timer einstellen > ISR( ... ) > { > PORTC = 0; > digit=(digit+1)&7; > PORTD=segmentabbild[ziffer[digit]]; > PORTC=1<<digit; > } Main Tastatur abfrage ;hast du ja auch drin ;Und noch Tausend andre Sachen die der µC noch so
-
Thread
vu meter mit atmel
= &B11110011 Portb.2 = 0 Portb.3 = 0 Ddrd = &B10111111 Portd = &B11111111 Ddrc = &B11111111 Portc = &B11111111 Ddra = &B11111111 Porta = &B11111111 Acsr.7 = 0 '---[ Variables ]---------------------------------------------------- Dim Peak_pos As Byte Dim Peak_hold As Byte Dim Drop_hold
Bar_pattern.12 Porta.5 = Bar_pattern.11 Porta.6 = Bar_pattern.10 Porta.7 = Bar_pattern.9 Portc.7 = Bar_pattern.8 Portc.6 = Bar_pattern.7 Portc.5 = Bar_pattern.6 Portc.4 = Bar_pattern.5 Portc.3 = Bar_pattern.4 Portc.2 = Bar_pattern.3 Portc.1 = Bar_pattern.2 Portc.0 = Bar_pattern
-
Thread
MC reagiert nur auf das erste Bluetooth-Paket
Portc.2 = Output 'LED1 Config Portc.1 = Output 'LED2 Config Portc.0 = Output 'LED3 Dose1 Alias Portc.5 Dose2 Alias Portc.4 Dose3 Alias Portc.3 Led1 Alias Portc.2 Led2 Alias Portc.1 Led3 Alias Portc.0 Piezo Alias Portb.0 Dose1 = 0 Dose2 = 0 Dose3 = 0 Piezo = 0 Sound Piezo , 250 , 400
-
Thread
Wie kann man Atmega8, L298 und einen Schrittmotor verbinden?
starts new load not by 0 } void cwC(uint16_t d_var) // move cw, pins 2-5, in 1/4 steps { PORTC = 0b00010100; long_delay_us(d_var); PORTC = 0b00011000; long_delay_us(d_var); PORTC = 0b00101000; long_delay_us(d_var); PORTC = 0b00100100; long_delay_us(d_var); } // main function int main
// interrupt enable, for overflow sei(); // all interrupts are permitted DDRC = 0b0111100; PORTC = 0; while(1) { cwC(STD_DELAY); } return 0; } Beide Chips funktionieren. Der MC sendet das Signal, der Treiber wird warm. Fotos/Screenshots sind dabei. Ma unten links auf den
-
Thread
Schreibweisen
ganzen port umschalten können auf einen anderen, wert ist schon vorgegeben. PORTB = 0xFF ----> PORTC = 0xFF nur als bspl
port umschalten können auf einen anderen, > wert ist schon vorgegeben. > > PORTB = 0xFF ----> PORTC = 0xFF Was genau willst du da jetzt machen? PORTB = PORTC; PORTC = PORTB; all das ist zulässig. Für dich ist PORTB oder auch PORTC programmtechnisch wie eine 'Variable'. Weist du
-
Thread
Lichtsensor und ADC - Bascom
* Adc_multi Do If Volt >= 2 Then Portc.0 = 1 Else Portc.1 = 1 End If Waitms 100 Loop Danke Für Die Hilfe.!
= 0 Portc.0 = 1 Else Portc.0 = 0 Portc.1 = 1 End If Messergebnis = Getadc(5) Volt = Messergebnis * Adc_multi Waitms 100 Loop
-
Thread
HB100 auswerten (PicKIT 3)
VREFCON0bits.FVR1S<1:0> = 01; // 01 = 2.048V _delay_us(10); sHI = CM2CON0bits.C2OUT; PORTC = sPORTC.port; } } Ist es eigentlich möglich bei den "PIC18F14k22" die Referenzspannung einzustellen? Ich habe zur Zeit nur "fixe" Spannungswerte gefunden wie z.B.: 1.024V, 2.048V, .....
CM2CON0bits.C2OUT; VREFCON0bits.FVR1S = 0b01; _delay_us(10); sHi = CM2CON0bits.C2OUT; PORTC = sPORTC.port; } }
-
Thread
Timer Overflow Interrupt behindert Externen Interrupt?
Richtung = 1; // Rückwärts Spieler1 (wenn Sensoren rechts, von hinten betrachtet) } PORTC=~PORTC; USART_Transmit_c('A'); //Übertragung Start USART_Transmit_c(0x00); //Übertragung Spieler1 - Identifikation USART_Transmit_c(s_1_Richtung); //Übertragung
--> zwei Flanken --> Start s_2_Start = 1; // Startbit Spieler 2 gesetzt PORTC=~PORTC; } } if( !(PINA & (1<<PA3)) ) // Sensor 12 (Drehrichtung) für Spieler1 liegt an { zaehlerS2_Richt = TCNT1; // Richtungswert Spieler 2 setzen } } [/
-
Thread
ATMega32 UART Empfang stört Timing
Folgendes hab ich probiert: UART komplett gar nicht initialisiert und nur PORTC an/aus in einer main while Schleife. PORTC an/aus in einer Interruptroutine, UART empfang in main. Ist dem ATMega völlig egal. Sobald der UART irgendwas empfängt, flackert die LED = die PWM auf PORTC
UCSZ1)|(1<<UCSZ0) |(1<<URSEL); // Asynchron 8N1 } void indicateAction(void) { int wait ; PORTC = 0b11111111 ; // just to wait a bit for (wait = 0 ; wait < 10 ; ++wait) ; PORTC = 0b00000000 ; } int main() { DDRC = 0xFF; // PORTC Ausgang uart_init(); while (1) {
-
Thread
LCD Initialisierung mit Fleury
eingestellt habe, könnte das vlt mal einer überprüfen? Das LCD hängt an PortB (8-Bit Mode) RS -> PortC 0 RW -> PortC 1 E -> PortC 2 Ich habe mal die lcd.h angehängt, so wie ich sie zZ konfiguriert habe. Vielen Dank schonmal im Vorraus =) Gruß -Germo-
eines geeigneten µC angeschlossen werden (ATMega8535 ist geeignet). Deine Zuordnung zu PORTB und PORTC ist zu überprüfen.
-
Thread
TLC5940 mit XMEGA ansteuern
TLC verbunden definiert ist er als Ausgang und initial auf High gesetzt [c]#define GSCLK_PORT PORTC #define GSCLK_PIN 2 //SIN TLC = MOSI #define SIN_PORT PORTC #define SIN_PIN 5 //SCLK TLC = CLK #define SCLK_PORT PORTC #define SCLK_PIN 7 //Blank TLC = SS #define BLANK_PORT PORTC #define BLANK_PIN 4 #define DCPRG_PORT PORTC #define DCPRG_PIN 0 #define VPRG_PORT PORTC #define VPRG_PIN 3 #define XLAT_PORT PORTC #define XLAT_PIN 1 //MISO wird nicht gebraucht #define MISO_PORT PORTC #define MISO_PIN 6 [/c]
-
Thread
atmega32 16PU Schaltet nicht sauber
); PORTA = 0b10000000;//A7 1 out("A10000000"); PORTA = 0b00000000;//AUS PORTC = 0b00000001;//B0 1 out("C00000001"); PORTC = 0b00000010;//B1 1 out("C00000010"); PORTC = 0b00000100; out("C00000100"); PORTC = 0b00001000; out("C00001000"); PORTC = 0b00010000; out("C00010000"); PORTC = 0b00100000; out("C00100000"); PORTC = 0b01000000; out("C01000000"); PORTC = 0b10000000; out("C10000000"); PORTC = 0b00000000
-
Thread
LCD Display funktioniert nur wenn ich den uC Flashe
ihr habt tipps... Anbei der Schaltplan Hier die Initialisierung [c] #define LCD_RW_1 PORTC |= (1<<PC3) #define LCD_RW_0 PORTC &= ~(1<<PC3) #define LCD_RS_1 PORTC |= (1<<PC2) #define LCD_RS_0 PORTC &= ~(1<<PC2) #define LCD_E_1 PORTB |= (1<<PB4) #define LCD_E_0 PORTB &= ~(1<<
0xB0; void send_char(unsigned char ucData) { LCD_RW_0; //Write LCD_RS_1; //Daten PORTC = (PORTC & 0x0F) | (ucData & 0xF0); //High Nibble _delay_us(100); LCD_E_1; _delay_us(500); LCD_E_0; _delay_us(500); _delay_ms(5); PORTC = (PORTC & 0x0F) | ((ucData << 4) &
-
Thread
Einzelne Bits mit WinAvr
eigenes Byte: [c] uint8_t schalter, taster, licht; schalter = PORTB&(1<<PORTB1); taster = PORTC&(1<<PORTC2); if (schalter) licht = 1; if (taster) licht = 0; : [/c] Jetzt könnte ein Hacker drauf kommen und alles zusammen in ein Bitfeld hacken, das dann natürlich statt 3 Bytes nur
*(volatile struct bits*)&port).b##pin) #define SBIT(x,y) SBIT_(x,y)[/c] und [c]SBIT( PORTC , PC3) = 1;[/c] folgende Fehlermeldung: dereferencing pointer to incomplete type ich bin irgendwie am verzweifeln!
-
Thread
AVR und GCC machen Unfug!?!?!
// Timer initialisieren TCCR0 |= (1<<CS00)|(1<<CS02); DDRC = 0xff; // C als Ausgang PORTC = 255; // C anschalten // MainLoop while(1) { // Timer und MS aktualisieren if( TCNT0 > FRAMES_PER_MS ) // Eine Millisekunde ist vergangen { TCNT0 -= FRAMES_PER_MS
2000 ) // Alle 2 Sekunden... { msCounter -= 2000; ledAus(); //PORTC = 0; // -HIER OBACHT WICHTIG!!! }//end if }//end if }//end while }//end main void ledAus( void ) { PORTC = 0; }//end doSingleBeep Es sollte sofort klar sein, was dieser
-
Thread
Anfänger braucht Hilfe bei C Programmierung
oben kaum verstehe. Wenn ich ein Bit/Pin als Ausgang setzen möchte, würde ich so etwas wie [c] PORTC |= (1 << PC0); [/c] schreiben. Das ist das selbe wie [c] uint32_t current_bitmask = PORTC; PORTC = ( current_bitmask | (1 << PC0) ); [/c] Gruß Daniel
( PIND,2 ) ) { > ( PINC,0 ) |= (1<<1); // Taster ist gedrückt > } > else { > PORTC,0 &= ~(1<<1); // Taster ist nicht gedrückt > } Müsste da nicht PORTC statt PINC?
-
Thread
Bascom - Atmega16 Led-Uhr
1 Ledr10 Alias Portb.2 Config Ledr10 = 1 Ledr11 Alias Portb.3 Config Ledr11 = 1 Ledg0 Alias Portc.0 Config Ledg0 = 1 Ledg1 Alias Portc.1 Config Ledg1 = 1 Ledg2 Alias Portc.2 Config Ledg2 = 1 Ledg3 Alias Portc.3 Config Ledg3 = 1 Ledg4 Alias Portc.4 Config Ledg4 = 1 Taster1 Alias Pind
Ledr8 Alias Portb.0 Ledr9 Alias Portb.1 Ledr10 Alias Portb.2 Ledr11 Alias Portb.3 Ledg0 Alias Portc.0 ' wird im Programm nicht verwendet! Ledg1 Alias Portc.1 Ledg2 Alias Portc.2 Ledg3 Alias Portc.3 Ledg4 Alias Portc.4 Taster1 Alias Pind.6 Taster2 Alias Pind.7 [/code] TomTom schrieb
-
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
Wie ist PORTB implementiert?
template<...> auch nicht eine uint8_t PortNummer übergeben, sondern eine voll funktionsfähige class{} PortC (oder ein struct{} ) Als Beispiel: ports_.h enthält die class PortImplementation{}, die die Funktionalität enthält. Das Makro AUTO_IO_REG_WRAPPER stellt die Verbindung zu avr.io her. . der PortC wird deklariert mit: [c] namespace Private { AUTO_IO_REG_WRAPPER (PORTC, OutC, uint8_t); AUTO_IO_REG_WRAPPER (DDRC, DirC, uint8_t); AUTO_IO_REG_WRAPPER (PINC, InC, uint8_t); } using PortC = PortImplementation < Private::OutC,
-
Thread
LCD von Powertip PC 2004A B reagiert nicht
Ich habe folgendermassen den LCD angehängt: Pin1: Gnd Pin2: Vcc 5V Pin3: Poti 10k Pin4: Portc.4 Pin5: Gnd Pin6: Portc.5 Pin7: Gnd Pin8: Gnd Pin9: Gnd Pin10: Gnd Pin11: Portc.0 Pin12: Portc.1 Pin13: Portc.2 Pin14: Portc.3 Pin15: NC Pin16: NC Der Bascom-Code: [code] 'Bascom
$regfile = "m32def.dat" $crystal = 8000000 Config Lcd = 20 * 4 Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.5 , Rs = Portc.4 'Config Lcdbus = 4 Cls Locate 1 , 1 Lcd "Hallo Welt" [/code] Für eure Hilfe danke ich euch im Voraus. Freundliche
-
Thread
Bascom Avr + LCD
m8def.dat" $crystal = 3686400 Config Lcd = 20 * 4 Config Lcdbus = 4 Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.4 , Rs = Portc.5 Cls Locate 3 , 2 Lcd "Hallo " End <-- Leider wird die Darstellung auf den Display falsch angezeigt. Ich hatte
3686400 benutzt du einen externen 3,6mhz quarz ? Config Lcd = 20 * 4 Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.4 , Rs = Portc.5 display on Cls Locate 3 , 2 Lcd "Hallo " End
-
Thread
ATMega32 PortC "seltsame" spannung
betreffen (spi, uart) und muss die fuse irgendwo überlesen haben^^ EDIT: habs grade unter den PortC eigenschaften gefunden im datenblatt (dachte dass der abschnitt unwichtig is, da ich bei attiny und atmega328 bis jetzt nur input/output/adc da gelesen habe)
-
Thread
LCD an Atmel - ENable-Pin auf anderen Port
Machen die nicht sichtbaren Codeteile (insbesondere die PWM Initialisierung) noch was mit DDRC oder PORTC? Vielleicht machen die die lcd_int() für die EN Leitung unwirksam.
Nachfrage oder Schweigen. [aufreg aus] Wie sieht Messung() aus? Beim Atmega88 ist der ADC an *PORTC* und du hast dein LCD RS an *PORTC*. Beeinflusst die Initialisierung des ADC den Pin PC5? Der/die Pin(s) an PORTC werden ja von IO-Pins auf ADC-Pins umgeschaltet. Wird PC5 davon auch ausgenommen?
-
Thread
ATxmega128a1 und RFM70 Problem.
assosciated with set1[4]! void initSPI(uint8_t clk_div) { // set the pin direction to output PORTC.DIRSET = (1<<SCK) | (1<<MOSI) | (1<<CSN); // Ausgang PORTC.OUTCLR = (1<<MOSI)|(1<<SCK); // Set to Low // chip select to high PORTC.OUTSET = (1<<CSN); SPIC.CTRL = SPI_PRESCALER_DIV4
CSN_ON() PORTC.OUTCLR = (1<<PIN4) #define CSN_OFF() PORTC.OUTSET = (1<<PIN4)
-
Thread
PIC 16F684 LED blinkt immer
Rel_b PORTA,1 #define A_C PORTA,2 #define A_AX PORTA,4 #define A_BY PORTA,5 #define LED PORTC,0 #define E_C PORTC,1 #define E_B PORTC,2 #define E_A PORTC,3 #define E_Y PORTC,4 #define E_X PORTC,5 #define M_AX Merker,0 #define M_BY Merker,1 #define M_C Merker,2 #define
Set RA<0-5> as outputs / 3 as input MOVWF TRISA BCF STATUS,RP0 ;Bank 0 BANKSEL PORTC ; CLRF PORTC ;Init PORTC MOVLW 07h ;Set RC<4,1:0> to MOVWF CMCON0 ;digital I/O BANKSEL ANSEL ; CLRF ANSEL ;digital I/O MOVLW B'00111110' ;Set RC<1-5>
-
Thread
Byte an PORTS ausgeben
PORTC ein Byte erhalte? Controller: ATMEGA 8a
halt mit dem PORT Toggeln: [c] PORTB = (PORTB & 0xC0) | (ucData & 0x3F); ucData >>= 6; PORTC = (PORTC & 0xFC) | (ucData & 0x03); [/c] Aber wie gesagt: nicht atomar
-
Thread
ATMega88 und INT0
(PORTC,4); } Bin für jede Hilfe dankbar Gruß Ben
PORTC &= ~(1<<PC4); delay_ms(100); PORTC |= (1<<PC4); } Bin für jede Hilfe dankbar
-
Thread
mit Interrupt globale Variablen verändern
include <avr/signal.h> char hour=13; // globale Variable void initialisation(void) { DDRC=0xFF; //PORTC als Ausgang PORTC=0xFF; //alle LEDs aus } INTERRUPT(SIG_OVERFLOW0)//Interrupt Timer0 Overflow { //... soll hier später die Variable hour verändern } int main (void) { initialisation(); if(hour
io.h> #include <avr/signal.h> char volatile hour= 13; void initialisation(void) { DDRC=0xFF; //PORTC als Ausgang PORTC=0xFF; //alle LEDs aus } int main (void) { initialisation(); while(1) { if(hour==13) { PORTC=0x00; } } return 0; } PS.: So sieht mein Makefile aus: #Makefile für
-
Thread
ATMEGA16 PortC klappt nicht
Ich habe jetzt des öfteren das Problem das bei mehreren ATMega 16 der PortC nicht alle PINs klappen. PC0,PC1 und PC6 und PC7 - lassen sich ansprechen und die anderen nicht. Habe eine Verständnisfrage - sind am Port PC2 bis PC5 freigegeben, oder muss man diese erst freischalten
Programm mit Bascom: $crystal = 8000000 $regfile = "m16def.dat" Dim A As Byte Config Portc = Output Portc = 255 Wait 2 Portc = 0 For A = 0 To 255 Portc = A Wait 1 Next
-
Thread
Mega32: PortC Problem
Irgendwie will bei meinem Mega32 der PortC nicht so richtig. Also wenn ich 0x00 auf den Port schiebe, dann bleiben die LED´s in der Mitte dunkel (PortC.2-5). Habe mir mal die Pinbelegung angeschaut und siehe da, sie sind wie doppelt belegt
-
Thread
DOGM132-5 mit SPI ansteuern
jemand kurz drüberschaut: [c] void spi_master_transmit(char cData) { PORTB &= ~CS_LCD; PORTC &= ~LC_A0; SPDR = cData; while(!(SPSR & (1<<SPIF))); PORTC |= LC_A0; PORTB |= CS_LCD; _delay_us(10); } [/c] (Habe es auch schon ohne das aus und wieder anschalten von
SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0)|(1<<CPHA)|(1<<CPOL); } //reset LCD PORTC &= ~0b100000; PORTC &= ~LC_RST; delay_hundredth(50); PORTC |= LC_RST; PORTC |= 0b100000; _delay_us(50); //Select LCD and turn off A0 PORTB &= ~CS_LCD