-
Thread
Einlesen von Tastern mit Entprellheader
[c] #define TASTERPORT PORTC #define TASTERBIT PINC5 [/c] von einem Port liest man über das PINx Register ein und nicht über das PORTx Register. Code nicht einfach gedankenlos übernehmen. Die Zeile hier [c] if(zustand
So wird ein Schuh draus: > > (1<<TASTERBIT) Danke. Noch ein Fehler. Nach dem Erkennen des PORTC - PINC Fehlers hab ich nicht mehr weiter gelesen. Mir hat schon der Teil "alles gelbe ist auskommentiert" gereicht.
-
Thread
EEPROM lesen im Interrupt
Es ist auch egal welche. Und auch in welchem Interrupt. Ich habe immer das selbe Verhalten, dass PORTC abgenullt wird. Alle anderen PORTs bleiben unberührt.
habe ich den Pin invertiert. Es hat alles perfekt funktioniert. Wenn ich allerdings einen Pin am PORTC nehme und die EEPORM-Leseroutine benutze, dann gehts nicht. Der PORTC wird einfach überschrieben.
-
Thread
Problem: INT0/1 auf Arduino
; Init counter pins PC0-3 sbi DDRC, 0 sbi DDRC, 1 sbi DDRC, 2 sbi DDRC, 3 cbi PORTC, 0 cbi PORTC, 1 cbi PORTC, 2 cbi PORTC, 3 ; Interrupt register EICRA/B ; EICRA: ISC11:0 11 ; ISC01:0 11 ; EIMSK: INT1 1 (enabled) ; INT0
Beitrag #5687797: > sbi DDRC, 0 > sbi DDRC, 1 > sbi DDRC, 2 > sbi DDRC, 3 > > cbi PORTC, 0 > cbi PORTC, 1 > cbi PORTC, 2 > cbi PORTC, 3 so kompliziert 4 Zeilen reichen auch ldi r16,$0e out ddrc, r16 clr r16 out PortC,r16 Simon E. schrieb im Beitrag #5687797:
-
Thread
xmega128A1 Stromverbrauch
Pin0 als Eingang beschlossen PORTA.DIR = 0xFF; PORTD.DIR = 0xFF; PORTR.DIR = 0xFF; PORTC.DIR = 0xFF; PORTE.DIR = 0x00; }
1<<PIN0); // Pin0 als Eingang beschlossen PORTA.DIR = 0xFF; PORTB.DIR = 0xFF; PORTC.DIR = 0xFF; PORTE.DIR = 0x00; PORTD.DIR = 0xFF; PORTR.DIR = 0xFF; PORTK.DIR = 0xFF; PORTJ.DIR = 0xFF; PORTQ.DIR = 0xFF; PORTH.DIR = 0xFF; }
-
Thread
Snake Projekt: Matrixansteuerung
init_tmr(); init_intr(); sei(); while(1) { if (MUXPORT = 0x03) PORTC = 0xff; else PORTC = 0x00; } } [/c] Wenn ich die if-Abfrage in meinem Timer-Interrupt mache funktioniert alles. Aber es muss doch eine Möglichkeit geben Funktionen zu schreiben
einfach indem ich für die zeilen die > Spalten-Bits auf null setze. D.h. wenn du an PORTA bzw. PORTC 0 ausgibst, leuchtet nix? Dann ist klar, wie der Beginn der ISR aussehen muss [C] ISR(TIMER0_COMP_vect) //Interruptfrequency: 4MHz { PORTC = 0; PORTA = 0; MUXPORT = zeile;
-
Thread
Binäruhr selbstbau
Hier mal vorausgesetzt, dass nur eine Spalte angeschlossen wird. void ledout(uint8_h data){ PORTC = data & (1 << PC0); PORTC = data & (1 << PC1); PORTC = data & (1 << PC2); PORTC = data & (1 << PC3); } main (){ ... // erste Stelle schreiben // hier: Spalte 1 high ledout( ...
etwa so gehen: (pseudocode) { port_anderer = 1, 2, 4, 8, .. // ausgabe der aktiven spalte portc = data; // entweder min, sek oder std, oder.. } Das packst du in eine timer-overflow-ISR und tust bei jedem aufruf den port_anderer weiterschalten (1=>2=>4=>..) und die nächsten daten ausgeben
-
Thread
LCD Programmierproblem
Dein Programm fehlt leider und das LCD hat 0x40 Zeichen? Ist PortC aktivert?
Mega16 und PORTC? Hast du das JTAGEN per Fuse abgeschaltet?
-
Thread
RFM01 Problem
lfuse D4 hfuse D9 */ #include <avr/io.h> #define DDR_IN 0 #define DDR_OUT 1 #define PORT_SEL PORTC #define PIN_SEL PINC #define DDR_SEL DDRC #define PORT_SDI PORTC #define PIN_SDI PINC #define DDR_SDI DDRC #define PORT_SCK PORTC #define PIN_SCK PINC #define DDR_SCK DDRC #define PORT_SDO PORTC #define PIN_SDO PINC #define DDR_SDO DDRC #define PORT_LED PORTB #define DDR_LED DDRB #define PB7 7 #define PB6 6// | #define RFXX_SCK PC1// | #define RFXX_SDO PC3// |RF_PORT #define RFXX_SDI
-
Thread
16bit seriell in 16bit Variable auslesen
/* SerRDWR as output */ DDRD &= (~(1<<CPLD_nSerDATA)); /* SerDATA as input */ PORTC &= (~(1<<CPLD_nSerRDWR)); /* RDWR=0, read from CPLD operation */ PORTC |= (1<<CPLD_nSerEN); /* EN=1, serial clock disabled, read keys to parallel register */ PORTC &= (~(
Steffen H. schrieb im Beitrag #1696515: > u8Result>>=1; > PORTC |= (1<<CPLD_nSerCLK); /* SerCLK = 1 */ > PORTC &= (~(1<<CPLD_nSerCLK)); /* SerCLK = 0 */ > u8Result |= PIND & (1<<CPLD_nSerDATA); /* Insert the port value to u8Result and
-
Thread
Mikrocontrollers Eingang bestimmten Impuls abfragen
int e=0; while (1) { if (e < 60) e = e++; delay_ms(1000); if (e > 60) PORTC.5 = 1; else PORTC.5=0; }; }
setzten? while (1) { if (e < 60) e = e++; delay_ms(1000); if (e > 60) PORTC.5 = 1; else PORTC.5=0; }; }
-
Thread
Wie kann ich folgenden C-Code mit einer Schleife kürzer machen?
BIT PD1 #define LED_2_PORT PORTB #define LED_2_BIT PB6 #define LED_3_PORT PORTC #define LED_3_BIT PC3 #define LED_4_PORT PORTC #define LED_4_BIT PC4 #define LED_5_PORT PORTC #define LED_5_BIT PC5 #define LED_6_PORT PORTD #define LED_6_BIT
möchte speziell in die for-schleife etwas einbauen, dass dem gerecht wird, wenn ich einige leds an portc, und einige an portd habe. mir gehts darum zu verstehen wie ich veränderbare variablen, statt "PD5, PD6, usw..." verwende.
-
Thread
Timer und Resetprobleme mit Mega16
{ PORTD &=~ (1 <<LED_DUFT); // Duft LED aus } if ( led_an == 1) { PORTC |= (1 <<LED_LED); // Duft LED an } else if (led_an == 0) { PORTC &=~ (1 <<LED_LED); // Duft LED aus } if ( led_active == 0 ) // Standartlicht {
= 0 ; // rot } erfrischung_an = 1; PORTC |= ( 1 << MAGNET_KALT ); //Magnetventile anschalten PORTC &= ~ ( (1 << MAGNET_TEIL) | (1 << MAGNET_WARM) ) ; } else if (erfrischung_an == 1 & pressed
-
Thread
AD-Wandler + Portfunktionen bei Atmega8 verwenden
PortC ? Scheint kein PC zu sein....
ANALOGIN_KANAL)); //Kanal 0 if( (temp_in < aetztemp-HYSTERESE)&&bit_heiz==0) { PORTC|=(1<<PC4); bit_heiz=1; //HEIZUNG_EIN; } if( (temp_in > aetztemp+HYSTERESE) &&bit_heiz==1) { PORTC&=~(1<<PC4); bit_heiz=0; //HEIZUNG_AUS; } ... Auszug
-
Thread
Problem mit ATmega164A und LCD FDCC1601E
.... [/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
-
Thread
Verstehe GCC nicht
uint8_t i = DisplayRow; if (++i >= 15) i = 0; // 100Hz DisplayRow = i; // 1.) PORTC = (PORTC & ~ROW_MASK) | (i << 3); // 2.) uint8_t* p = (uint8_t*)&DisplayRAM[i]; uint8_t v; SPDR = p[1]; v = p[0]; while (!(SPSR & (1 << SPIF))); SPDR = v; v = p[
Bits immer NULL sind (kann entfallen) if (i >= (15*8)){ i = 0; } DisplayRow = i; PORTC = (PORTC & ~ROW_MASK) | i; Gruß, Stefan
-
Thread
Anfängerprobleme beim Programmieren eines Lauflichts mit funktionen
i){ if(i==1){ PORTC |= (1<<PC2); } else if(i==2){ PORTC &= ~(1<<PC2); } } void port3(int i){ if(i==1){ PORTC |= (1<<PC3); } else if(i==2){ PORTC &= ~(1<<PC3); } } void dauerlicht(){ PORTC |= (1<<PC0); PORTC |= (1<<PC1); PORTC |= (1<<PC2); PORTC |= (1<<PC3); return; } void blinklicht(){ int a=1; int b=2; port2(a); port0(b); _delay_ms(300); port3(
-
Thread
mega64 UART
auslesen cpi mp, 0x31 ;mit 1 vergleiche brne rx_1 ;wenn nicht 1 dann weiter sbi PORTC, 0 ;wenn 1 dann relaise 1 Schalten rjmp rx_end rx_1: cpi mp, 0x32 ;mit 2 vergleiche brne rx_2 ;wenn nicht 2 dann weiter sbi PORTC, 1 ;wenn 2 dann relaise 2 Schalten rjmp
out PORTC, mp rx_end: pop mp ;mp Lesen reti
-
Thread
AVR pro. mit Atmel Evaluationsb. 2 über Bascom und PonyProg
Config Portc = Output Portc = 0 Do Portc = 0 Waitms 10 Portc = 255 Waitms 10 Loop End
-
Thread
AVR-Programmer selber bauen
> Bei den Ports musst du nichts ändern. Beim ATmega8: PORTB: 0x18, DDRB: 0x17, PINB: 0x16 PORTC: 0x15, DDRC: 0x14, PINC: 0x13 PORTD: 0x12, DDRD: 0x11, PIND: 0x10 Beim ATmega328P: PORTD: 0x0B, DDRD: 0x0A, PIND: 0x09 PORTC: 0x08, DDRC: 0x07, PINC: 0x06 PORTB: 0x05, DDRB: 0x04, PINB: 0x03
Michael D. schrieb im Beitrag #2754670: > Beim ATmega8: > PORTB: 0x18, DDRB: 0x17, PINB: 0x16 > PORTC: 0x15, DDRC: 0x14, PINC: 0x13 > PORTD: 0x12, DDRD: 0x11, PIND: 0x10 > > Beim ATmega328P: > PORTD: 0x0B, DDRD: 0x0A, PIND: 0x09 > PORTC: 0x08, DDRC: 0x07, PINC: 0x06 > PORTB: 0x05, DDRB: 0x04
-
Thread
Probleme beim Binär hoch bzw runter zählen
do-while Schleifen mal raus, die brauchst du eigtl nicht. Genauso kannst du dir i sparen und direkt PORTC hochzählen. Probier mal ob dieser Code funktioniert: [c] while(1) { if(zaehler==0) { if (PORTC < 255) PORTC++; else zaehler = 1; } if(zaehler==1) { if (PORTC > 0) PORTC--; else zaehler = 0; } } [/c] lg Chris
-
Thread
Programm bleibt stehen
Genau Masse geht dann geschaltet auf den jeweiliegen Eingang vom PORTC
) { _delay_ms(20); } } } [/c] und du drückst auf den Taster am Portpin PORTC / 0 (Verezeih wenn ich alles 3 mal nachfrage. Aber ich muss mir hier ein Bild von der Situation bei dir machen. Und bei Fehlersuche stelle ich grundsätzlich alles in Frage)
-
Thread
ATmega32 rennt nur mit ISP-Adapter
Programm setzt nur eine LED? Programmiere mal ein Blinklicht. [c] int main() { long i=0; PORTC =0xFF; while(1) { i++; if(i==1000000) { if ( PORTC ==0xFF) { PORTC =0x00; } else { PORTC =0xFF; }
-
Thread
Atmega 32, 8-Bit Timer(Timer 0)
> //Interrupt Service Routine ISR(TIMER0_COMP_vect) { static uint8_t c=0; c=~c; if (c==0){PORTC |= (1<<PC0);} if (c==1){PORTC &= ~(1<<PC0);} } //Hauptprogramm int main(int argc, char **argv) { //Pin Konfiguration DDRC = 0xFF; //PORT C als Ausgang //Timer 0 initialisieren
> //Interrupt Service Routine ISR(TIMER0_COMP_vect) { static uint8_t c=0; c=~c; if (c==0){PORTC |= (1<<PC0);} if (c==255){PORTC &= ~(1<<PC0);} } //Hauptprogramm int main(void) { //Pin Konfiguration DDRC = 0xFF; //PORT C als Ausgang //Timer 0 initialisieren TCNT0 =
-
Thread
Interrupt Compilerfehler
here [c]ISR(TIMER1_COMPA_vect) { pwm_cycle = 0; PORTB |= ptr_PORTB_isr[0]; // PORTC |= ptr_PORTC_isr[0]; OCR1B = ptr_timing_isr[0]; } ISR(TIMER1_COMPB_vect) { pwm_cycle++; PORTB &= ~ptr_PORTB_isr[pwm_cycle]; // PORTC &= ~ptr_PORTC_isr[pwm_cycle]; if(ptr_timing_isr
ptr_PORTB_main; ptr_PORTB_main = ptr_PORTB_isr; ptr_PORTB_isr = temp_ptr; /* temp_ptr = ptr_PORTC_main; ptr_PORTC_main = ptr_PORTC_isr; ptr_PORTC_isr = temp_ptr;*/ temp_ptr = ptr_timing_main; ptr_timing_main = ptr_timing_isr; ptr_timing_isr = temp_ptr; } } [/c]
-
Thread
2 Microcontroler 10 Schalter 10 Leds wenige leitungen?
0b00000000 out DDRB, r16 main: in r16, PINB sbrs r16, 3 rjmp main rjmp daten1 daten1: sbi PORTC, 0 cbi PORTC, 1 sbi PORTC, 2 cbi PORTC, 3 sbi PORTC, 4 rjmp main [/avrasm] sind dann 5 leitungen dann einem 2ten µC beibringen.. das er schalten soll wenn PORTC, 0 PORTC, 2 PORTC,
-
Thread
Problem mit Diamex AVR-ISP Programmer (ATmega32) Bascom
regfile = "m32def.dat" $framesize = 32 $swstack = 32 $hwstack = 32 $crystal = 1000000 Config Portc.0 = Output Config Portc.1 = Output Config Portc.2 = Output Config Portc.3 = Output Do Portc.0 = 0 Portc.1 = 1 Portc.2 = 1 Portc.3 = 1 Waitms 1000 Portc.0 = 1 Portc.1 = 0 Portc.2 = 1 Portc.3 = 1 Waitms 1000 Portc.0 = 1 Portc.1 = 1 Portc.2 = 0 Portc.3 = 1 Waitms 1000 Portc.0 = 1 Portc.1 = 1 Portc.2 = 1 Portc.3 = 0 Waitms 1000 Loop
-
Thread
Sret geht nicht an Atmega 32, jedoch bei Atmega8!
'rote led beim Taster links Config Porta.1 = Output Config Portc.3 = Input Config Portc.2 = Output Config Portc.1 = Output Config Porta.4 = Input Config Portd.2 = Output Portc.0 = 1 Portd.2 = 1 Grun Alias Porta.0 'gelbe led im rechten Taster Rot Alias Porta.1 Nachricht Alias Pinc.3 Lednachricht Alias Portc.2 Ledalarm Alias Portc.1 Alarm Alias Pina.4 Const Sms1 = "alarm !!! GSM Alarm V2.1" Enable Interrupts 'Anfangssequenz For N = 1 To 10 Rot = 1
-
Thread
Lauflicht Problem mit 74hc595
Mein Code sieht jetzt so aus [c]#include <avr/io.h> #include <util/delay.h> #define DS_PORT PORTC #define DS_PIN 0 #define ST_CP_PORT PORTC #define ST_CP_PIN 1 #define SH_CP_PORT PORTC #define SH_CP_PIN 2 #define _BV64( bit ) ( 1ULL << (bit)) #define DS_low() DS_PORT&=~_BV64(DS_PIN
den alten Code kopiert -.- [c]#include <avr/io.h> #include <util/delay.h> #define DS_PORT PORTC #define DS_PIN 0 #define ST_CP_PORT PORTC #define ST_CP_PIN 1 #define SH_CP_PORT PORTC #define SH_CP_PIN 2 #define _BV64( bit ) ( 1ULL << (bit)) #define DS_low() DS_PORT&=~_BV64(DS_PIN
-
Thread
ASM oder C programmieren?
Assembler fomuliert worde zu sein. Euer C ist mitnichten portabel, wenn es zuweisungen der Art PORTC=0xFF verwendet (und vieles andere) Jedes C-Programm enthält Asseblerstücke, nämlich zumindet den Präambelcode-der main aufruft, und meist grosse Teile der Standardbibliothek. Es spielt dabei keine
MaWin schrieb im Beitrag #1796955: > Euer C ist mitnichten portabel, wenn es zuweisungen der Art > PORTC=0xFF > verwendet (und vieles andere) Keine Angst, enthält er nicht. Ich hab ja schon in Assembler EQU benutzt und daher in C dann selbstverständlich #define. Magische Zahlen im Code sind mir ein
-
Thread
ATxMEGA Entwickelungsboard
Welche Stecker braucht man, um die PORTD-, PORTC-, PORTB-Anschlüsse gleichzeitig benutzen zu können?
Schaltregler, PDI, serielle Schnittstelle, Ethernet) >Welche Stecker braucht man, um die PORTD-, PORTC-, PORTB-Anschlüsse >gleichzeitig benutzen zu können? Ich hab einfach eine Stiftleiste eingebaut... oder was meinst du genau.
-
Thread
externer Interrupt steigende Flanke
PB7)); PORTD&= ~((1<<PB2)|(1<<PB6)|(1<<PB7)); DDRC |= ((1<<PC0)|(1<<PC1)|(1<<PC2)); PORTC |= ((1<<PC0)|(1<<PC1)); PORTC &= ~(1<<PC2); GICR |= (1<<INT0); GICR &= ~((1<<IVSEL)|(1<<IVCE)); MCUCR |= ((1<<ISC01)|(1<<ISC00)); sei(); ACSR &= ~((1 << ACD)|(1 << ACBG
while(1) // Arbeitsschleife ist leer { if(bit_is_set(ACSR,5)==0) { PORTC |= ((1<<PC0)|(1<<PC1)); PORTC &= ~(1<<PC2); } else { PORTC &= ~((1<<PC0)|(1<<PC1)); PORTC |= (1<<PC2); } } //end while(1) } // Ende main
-
Thread
400er LED-Schriftzug Schaltplan
of cascaded TLC5947 chips #define TLC5947_N 2 //XLAT - PB2 SS #define SET_RGB_XLAT_HIGH {PORTC |= (1 << PC5);} #define SET_RGB_XLAT_LOW {PORTC &= ~(1 << PC5);} //BLANK - PB1 #define SET_RGB_BLANK_HIGH {PORTC |= (1 << PC1);} #define SET_RGB_BLANK_LOW {PORTC &= ~(1 << PC1);} #if (36
0xFF; DDRC = 0xFF; DDRD = 0xFF; nop(); //ports initialize low PORTB = 0x00; PORTC = 0x00; nop(); } int main(void){ uint8_t i; init(); PORTD = 0xFD; while (1) { TLC5947_SetAllGS(1000); } } [/c]
-
Thread
F_CPU bei atmega644 Standardeinstellungen
/ WARTEN AUF CTS SIGNAL UDR0 = data; PORTC=1<<PC0; } [/C]
UDR0 = data; PORTC=1<<PC0; } void startSending() { //TODO } void uart_init() { UBRR0H = UBRRH_VALUE; UBRR0L = UBRRL_VALUE; /* evtl. verkuerzt falls Register aufeinanderfolgen (vgl.
-
Thread
Brauche Hilfe, Programm hängt nach ca 2-3 Std
If Address = 5 And Command = 53 Then If Nr < 3 Then Incr Nr Else Nr = 1 Portc = Led(nr) Takt = 0 Waitms 500 End If If Takt >= 150 Then 'nach 15 Sekunden Portc = &B00000111 Disable Timer1
3 Then Incr Nr Else Nr = 1 Endif Portc = Led(nr) Takt = 0 Waitms 500 End If If Takt >= 150 Then 'nach 15 Sekunden Portc = &B00000111 Disable Timer1 Enable
-
Thread
Atmega 8 Hardwarefehler
'pullup Config Pind.2 = Input Taster4 Alias Pind.2 Taster4 = 1 'Leds Config Portc.0 = Output Config Portc.1 = Output Config Portc.2 = Output Led_grün Alias Portc.2 Led_gelb Alias Portc.1 Led_rot Alias Portc.0 Portb = 0 Do If Taster1 = 0 Then Toggle Led_grün
Led_gelb Elseif Taster3 = 0 Then Toggle Led_rot End If If Taster4 = 0 Then Toggle Portc Waitms 500 Print "Test" Loop End [/code] Nun mein Fehler: Es blinken immer alle LEDs, egal ob die Taster betätigt werden oder nicht. Auch die Terminalausgabe (Test) erscheint
-
Thread
Pic AND Funktion
"AND-Funktion" erstellen. 1. 4Eingänge von PortA sollen verglichen werden 2. 4Leds sollen an PortC alles Anzeigen Im Grunde soll z.B. 1Led leuchten, wenn Eingang 1 und 2 High haben. (Wenn PortA 1&2 Dann PortC 1) Weit bin ich leider nicht gekommen: #include <pic.h> void main(void) {
= 0b11111111; for(;;) // endlosschleife { if(PORTA == 0b.00000011) { PORTC = 0b.00000001; } else { PORTC = 0b.00000000; } } // for(;;) }
-
Thread
Erweiterung mit UART
uart.h" /* 9600 baud */ #define UART_BAUD_RATE 9600 void Schalter1 (void) { PORTC &= ~(1<<PORTC0); // Bit 0 loeschen, LED an _delay_ms(2000); PORTC |= (1 << PORTC0); // Bit 0 setzen, LED aus uart_putc ('1'); } // Ende Funktion Schalter1 void Schalter2 (void) { PORTC &= ~(1<<PORTC1); // Bit 0 loeschen, LED an _delay_ms(2000); PORTC |= (1 << PORTC1); // Bit 0 setzen, LED aus} } // Ende Funktion Schalter2 int main(void) { // eigene Variablen
-
Thread
zwei Bits beeinflussen - ich steh geradeauf dem Schlauch
zurücksetzen) kann ich das über ein #define hinbekommen? so nach dem Motto: [c] #define Zustand1 (PORTC |= 0x01);PORTC &= ~0x02) #define Zustand2 (PORTC |= 0x02);PORTC &= ~0x01) [/c]
-
Thread
Verständnisfrage PIC-Stack
instruction. Anstatt movlw B'00000000' movwf PORTA movwf PORTB movwf PORTC movwf PORTD movwf PORTE kannst Du clrf PORTA clrf PORTB clrf PORTC clrf PORTD clrf PORTE nehmen --- einen Befehl und ein wenig Zeit gespart. Dein Konstrukt zum
movlw D'127' ; Anzahl Aufrufe Subroutine movwf durchg clrf PORTE clrf PORTC A1 bsf PORTE, 0 ; Segment eins aktiv movfw Ziffer1 ; Wert Ziffer 1 laden call BCD ; BCD-Auswertung movwf PORTC ; 7-Segmentanzeige beschreiben
-
Thread
Matrix-Tastatur an AtMega8
abziehen for(i=0; i<j; i++){ //LED Blinkschleife _delay_ms(50); PORTC= PORTC | (1<<PORTC0);//Ausgang C0 auf HIGH _delay_ms(50); PORTC= PORTC & ~(1<<PORTC0);//Ausgang C0 auf LOW# } } } [/c]
-
Thread
SPI interface, Accelerometer LIS3LV02DQ
|= (1<<PC5); } void setLed(unsigned char state){ switch (state) { case 0: PORTC &= ~(1<<5); break; case 1: PORTC |= 1<<5; break; default: if (PORTC & 1<<5) PORTC &= ~(1<<5); else PORTC |= 1<<5; } } void
-
Thread
PIC16F690 LCD ansteurung
PORTC,2 ; R\W bcf PORTC,1 ; RS bsf PORTC,3 ; E nop bcf PORTC,3 ; E movlw 0x0F andwf PORTC,f ;Höherwertiges Nibble löschen swapf TEMP1,w andlw 0xF0 ;Niederwert
Höherwertigeren HalbPort iorwf TRISC,w ; als Eingang definieren movwf TRISC banksel PORTC ; Daten ,zeichen von LCD Lesen bcf PORTC,1 ; RS bsf PORTC,2 ; R\W bsf PORTC,3 ; E nop bcf PORTC,3 ; E movf PORTC,w andlw 0xF0 ;Niederw.Nibble ausmaskieren
-
Thread
3x3 LED-Matrix Atmega8
); PORTC = (1<<PC1) | (1<<PC2); break; case 3: PORTB = (1<<PB1); PORTC = (1<<PC1) | (1<<PC2); break; case 4: PORTB = (1<<PB3); PORTC = (1<<PC1) | (1<<PC3); break; case 5: PORTB = (1<<PB2); PORTC = (1<<PC1) | (1<<PC3); break; case 6: PORTB = (1<<PB1); PORTC = (1<<PC1) | (1<<PC3); break; case 7: PORTB = (1<<PB3); PORTC = (1<<PC2
-
Thread
Sind Sie sicher Abfrage, Usart, Atmega32
Hast du auch vorher PC7 auf PortC mit [c] DDRC = (1<<PC7) als Ausgang definiert? [/c] Versuch weiter mit der LED zu debuggen. Verschiebe das toggeln der LED zum Beispiel hier hin: [c] if (strcmp (uart_string, "y" )==0) { PORTC ^= (1<<PC7); uart_string[0] = '\0'; uart_schreibe_string("Daten geloescht"); } [/c] Du musst erstmal herausfinden, wo etwas schief läuft. Dann kann man sehen
-
Thread
Registerzuweisung bei PIC16F887
PORTC,2 = 0
bislang noch nicht so hinbekommen wie ich es mir vorgestellt hatte. Nun habe ich versucht die Bits im PORTC umzudrehen. Also: [c] PORTC &= ~(RC3); PORTC &= ~(RC4); [/c] Damit funktioniert das nun auch wohl, da die Register zu Beginn wohl mit 1 initilaisiert werden. Allerdings möchte ich gerne wissen
-
Thread
Hintergrundbeleuchtung per uC schalten - Programm hängt
crystal = 16000000 $swstack = 50 $hwstack = 50 $framesize = 50 Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , _ Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2 Config Lcd = 16 * 4 Config Porta = &B11110000 Config Portb = &B11111111 Config Portc = &B11111111 Config
-
Thread
problem mit porc
Config der leds Config Porta = Input 'Config der achse Config Portc = Output Config Portd = Output Portb = 255 Set Portc 'set port B to 10 Portd = 0 '################ For I = 0 To 50 Reset Portc.0 'Reset Portc.1 Set Portc.2 'Reset Portc.3 Reset Portc.4 'Reset Portc.5 Waitms 500
-
Thread
Mega128 und Hardware-UART (Bascom)
aber vielleicht liegt das ja an bascom. Wenn ich das ganze jetzt aber manuell machen will: Do portc.0 = 0 waitms 10 portc.0 = 1 waitms 10 loop geht es nicht. Muss ich noch etwas anderes beim mega128 beachten als beim mega8?
Ja, da habe ich mir jumper eingebaut. Portc.0 und porte.7 und den gesamten portc auch nochmal..
-
Thread
LCD mit 2 unabhängigen Controllern
angeschlossen Dim ___lcdno As Bit 'zum umschalten zwischen den kontrollern Config Lcdpin = Pin , E = Portc.2 , E2 = Portc.3 , Rs = Portc.0 , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portd.6 , Db7 = Portd.7 Config Lcd = 40 * 4 ___lcdno = 0 'Obere Hälfte Initialisieren Initlcd ___lcdno = 1 'untere
-
Thread
Einen einzelnen Pin abfragen
DDRA |= (1<<PA2); PORTA |= (1<<PA2); while (1) { if ( PINB & (1<<PB7) ) { PORTC = 0xff; } else { PORTC = 0x00; } } } Damit gehts nicht :( ALso an PORTC liegt auch ohne gedrückten Taster schon 1 an... :/
Du ziehst ja den PORTC auf 1 und mit dem Taster auf 0, "umgekehrt" ;)