-
Thread
Fehler in Schaltung
int main( void ) { DDRA = 0x1F; DDRB = 0x1F; DDRC = 0x1F; PORTA = 0x1f; PORTB = 0x1f; PORTC = 0x1f; while(1) return 0; } [/c] Mfg
include <util/delay.h> int main() { DDRA = 0x1F; DDRB = 0x1F; DDRC = 0x1F; while(1) { PORTC = 0x00; PORTA = 0x1f; _delay_ms(100); PORTA = 0x00; PORTB = 0x1f; _delay_ms(100); PORTB = 0x00; PORTC = 0x1f; _delay_ms(100); } return 0; }
-
Thread
ATmega48 - IRS funktioniert nicht richtig sei()
gar nichts mehr. Ich programmiere noch nicht lange nehmt rücksicht :) PS: Immer wenn ich etwas an PORTC setze leuchtet eine entsprechende LED, (PC3 ^= Rot, PC4 ^= Grün ) Interessant ist auch zu bemerken, dass die LED die ich in der IRS Routine aufleuchten lasse (um zu sehen ob ich da ankomme,) nicht
String-Endezeichen(Terminator)" */ uart_putc(*s); s++; } } int main(void) { PORTC |= (1<<PC4) ; setup() ; // Initialisierung sei() ; //Hier ist das erwähnte sei() ; PORTC |= (1<<PC3) ;// wird noch ausgeführt ... PORTC = 0x00 ; // wird nichmehr ausgeführt //Beginne
-
Thread
Xmega32A4U UART
meinem Terminal "h-term" das ich wie im Bild eingestellt habe. verdrahtet habe ich es so von PortC PC3----> TX Cp210x von Portc PC2----> Rx Cp210x mein Problem ist jetzt das nichts gesendet wird bzw. im Terminal wird mir nichts angezeigt habe ich hier etwas falsch gemacht?? [c]/* * Hallo_Welt.c
Converter Cp210X Was für Pegel gibt der aus? RS232 oder TTL? > verdrahtet habe ich es so > von PortC PC3----> TX Cp210x > von Portc PC2----> Rx Cp210x Brauchst du da zwischen uC und USB Adapter evtl. einen MAX232 Pegelwandler? Michael H. schrieb im Beitrag #5477216: > das ist auch, wenn ich
-
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
Einstieg in C-Programmierung
0b11111000; << das ist so kein Standard-C DDRC = 0xF8; while(1) { x = PIND; PORTC = x; } return 0; }
die temporäre Variable auch noch sparen (der Compiler wird sie sowieso wegoptimieren): for (;;) PORTC = PIND;
-
Thread
Bin Anfänger, brauche Tips, was man bei uC so alles falsch machen kann
i); if (onofftoggle == 2) PORTB ^= (1<<i); break; case 3: if (onofftoggle == 1) PORTC |=(1<<i); if (onofftoggle == 0) PORTC &=~(1<<i); if (onofftoggle == 2) PORTC ^= (1<<i); break; case 4: if (onofftoggle == 1) PORTD |=(1<<i); if (onofftoggle == 0) PORTD
für die guten Tips. Vor allem das mit dem JTAG dürfte wohl das Nichtfunktionieren der Pins auf PORTC hervorrufen (habe ich das jetzt richtig verstanden, dass, sobald ich in den Fuses JTAG enable, diese Pins nicht mehr für die Anwendung zu verwenden sind?). Hat vielleicht noch jemand eine Idee,
-
Thread
Fuse Einstellung spinnt, Programmieren scheitert!
<<COM00) | (1<<CS00); TIMSK = (1<<TOIE0); PORTA = 0x00; // PORT A als Eingang PORTC = 0xFF; // PORT C als Ausgang sei(); while (1) { OCR0 = pb; } }
auch: pb ^= PINA; DDRC = pb; keinen Sinn, denn Du veränderst in Abhängigkeit von PINA, ob PORTC ein Ein-oder Ausgang ist. Im Zusammenhang mit der höchstwahrscheinlich gewünschten Programmfunktion macht das keinen Sinn. Also muss das heißen: PORTC = pb Ob das Programm selbst dann Sinn ergibt
-
Thread
Programmierfehler? C Anfänger Atmega8
Außenbeschaltung: Drei Taster an PortB (PB0 = Zurück, PB1 = OK, PB2 = Vorwärts). Vier LEDs an PortC (PC0 - PC3) Das LCD an PortD. Es wird mit Vor, Zurück, OK eine Dezimalzahl zwischen 1 und 15 auf dem Display ausgewählt, die dann auf den 4 LEDs binär angezeigt wird. Drückt man bei 15 auf Weiter
den 4 LEDs binär angezeigt wird. > ... > - Die Dezimalzahlen werden nicht richtig angezeigt > PORTC = page; Kann es vielleicht sein, dass die LEDs gegen VCC angeschlossen sind? Dann musst du /page/ für die Ausgabe invertieren: PORTC = ~page & 0x0f;
-
Thread
Atmega8 Programmierung (LED Matrix)
main(void) { DDRC = 0xff; DDRB = 0xff; DDRD = 0xff; while(1) { PORTC = (1<<PC1)|(1<<PC3); PORTD = (1<<PD5) | (1<<PD7); _delay_ms(3000); PORTC = (0<<PC1) | (0<<PC3); PORTD = (0<<PD5) | (0<<PD7); _delay_ms(1000); } return 0;
Andreas Hermann schrieb im Beitrag #3428008: > PORTC = (0<<PC1) | (0<<PC3); Warum so kompliziert? Schreib doch gleich ganz einfach PORTC = 0; denn genau das ist es, was du hier machst. Es hilft nichts. Wenn du weiter kommen willst,
-
Thread
SPI Geschwindigkeit XMega
void) // SPI an PORTC einstellen { cli(); // Interrupts deaktivieren SPI_PORT.CTRL = 0b01010000; // SPI master, clock idle low, data setup on trailing edge, data sampled on leading edge, Geschw
Index_Senden++; } } PORTC.OUTSET =0b00010000; // Chip Select ausschalten [/c] Mit Overhead werden es wahrscheinlich um die 500 kBps. Muss wohl mal EDMA ausprobieren... Das sieht zwar kompliziert aus, aber wohl die einzige
-
Thread
Hum. Roboterhand Part II: codeeffektive kontinuierliche Servoansteuerung
Code, mit dem ich auf einem Mega128 mit 16Mhz 12 Servos ansteuere. Dass die Servos auf PortF und PortC verteilt sind, hat keinen tieferen Grund, ausser dass auf meiner Platine die Anschlüsse günstig lagen. Jeweils 6 Servos sind auf F und 6 Servos sind auf C. [C] #define F_CPU 16000000UL #include
( ++ServoId >= SERVO_ANZAHL ) ServoId = 0; if( ServoId == 0 ) { PORTF = 0x01; PORTC = 0x00; } else if( ServoId < 6 ) PORTF <<= 1; else if( ServoId == 6 ) { PORTF = 0x00; PORTC = 0x01; } else PORTC <<= 1; OCR2 = 57 + value[ServoId];
-
Thread
meinungen zu ass.prog.
enable global int ----------------------------------------------------------- Kann man auf z.B. Portc (Latch oder Pin) schreiben (out), obwohl der Port als "in" und "hochohmig/tristate" konf. ist ? Bei mir gehts,wie sollten sonst Daten zu den Leds kommen ? (siehe Listing).Etwas seltsam. Für mich irgendwie praktisch,sonst müßte ich den Portc dauernd umschalten,beim Daten Schreiben oder Lesen. Im UP "io_write:" werden Portc Daten geschrieben. Portc ist als "in" konfiguriert.Ein Widerspruch ? Oder mein Fehler? Wichtig:Es funktioniert
-
Thread
PIC18F13K22 Configurations bit
[avrasm] #include <p18f13k22.inc> org 0x00 Start clrf TRISC clrf PORTC bsf PORTC, 3 ;vierte LED einschalten goto $ end [/avrasm] Funktioniert nicht, da dass LVP-bit auf enabled ist. Nun muss ich das irgendwie auf disabled kriegen (Config
p18f13k22.inc> __CONFIG _LVP_OFF_4L org 0x00 Start clrf TRISC clrf PORTC bsf PORTC, 3 ;vierte LED einschalten goto $ end [/avrasm]
-
Thread
Schrittmotoransteuerung Mit Atmega8 und IC ULN 2003
9,1,5,4,6,2,10,8}, n; void rechtslauf_Vschritte(uint16_t ns){ uint16_t z; for ( z=0;z<ns;z++){ n++; PORTC =vs[n&3]; _delay_ms(5); } } void linkslauf_Vschritte(uint16_t ns){ uint16_t z; for(z=0;z<ns;z++){ n--; PORTC =vs[n&3]; _delay_ms(5); } } void rechtslauf_Hschritte(uint16_t ns){ uint16_t z; for (z=0;z<ns;z++){ n++; PORTC =hs[n&7]; _delay_ms(20); } } void linkslauf_Hschritte(uint16_t ns){ uint16_t z; for(z=0;z<ns;z++){ n--; PORTC =hs[n&7]; _delay_ms(15); } } void main(){ n=0; DDRC = 0b00001111; while
-
Thread
c compiler Unterprogramme aufrufen mit Funktion
Programm. //** D E F I N E S ********************************************* #define LED PORTC.RC0 //LED liegt an Port C RC0 //**Prototype*************************************************** void pausen ( int ms ); void main() { // Hauptprpgramm TRISC = 0; // set PORTC to be digital output PORTC = 0; // TURN off LEDs on PORTC while(1) { //Hauptschleife LED = 1; //LED einschalten
-
Thread
Keine Interrupts beim Mega8
> #define LED_HI_TGL {PORTC ^= 0x20;} Was sollen den die {} und das ;? Besser wäre #define LED_HI_TGL PORTC ^= 0x20
Dafür wäre die gängige Umschreibung [C] #define LED_HI_TGL do { PORTC ^= 0x20; } while (0) [/C]
-
Thread
IO atmega88 funktioniert nicht?
Flachbandkabel mit den 10-poligen Steckern richtig aufgesteckt? Kannst du mal komplett auf PORTC wechseln? PORTB kann Sonderfunktionen haben, die möglicherweise stören bzw. auf dem STK500 berücksichtigt werden müssen (Taktquelle, ISP-Programmierung). DDRC = 0xff; PORTC = 0x0f;
gesteckt, bekomme auch das gleiche ergebnis, wenn ich direkt an den beinchen des uc messe. auch bei portc tut sich ebenfalls nicht. danke und gruß
-
Thread
GLCD T6963C Bascom AVR
'3 +5V +5V '4 -9V -9V potmeter '5 /WR PORTC.0 '6 /RD PORTC.1 '7 /CE PORTC.2 '8 C/D PORTC.3 '9 NC not conneted '10 RESET PORTC.4 '11-18 D0-
= Porta , Controlport = Portc , Ce = 2 , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 4 , Fs = 5 , Mode = 8 'The dataport is the portname that is connected to the data lines of the LCD 'The controlport is the portname which pins are used
-
Thread
Drehzahl über ICP
den Pullup am PB0 nicht aktiviert oO [c] DDRD |= 0xFF; PORTD = 0; DDRC |= 0xFF; PORTC = 0; DDRB &= ~(1 << DDB0); DDRB |= (1 << DDB1) | (1 << DDB2) | (1 << DDB3) | (1 << DDB4); PORTB |= (1 << PB0); //Pullup TCCR1B |= (1<<CS10); // kein PreScale TCCR1B &=
Das versuche ich gerade mit: [c] //LED einschalten PORTC |= (1<<PC0); PORTB |= (1<<PB4); _delay_ms(2000); PORTB &= ~(1<<PB4); PORTC &= ~(1<<PC0); [/c] Die LED geht zwar an aber nichtmehr aus. Btw ich benutze myAVR Workpad
-
Thread
Problem: Page-Wechsel bei LCD DG-12232 klappt nicht
LCD_RESET_PORTA= 0b11100010 ; reset display [...] ; Display an ldi lcd_command, LCD_COMMAND_PORTC out PORTC, lcd_command ; LCD ist im "command"-Modus... ldi lcd_data, LCD_ON_PORTA out PORTA, lcd_data ; ...und bekommt das Kommando "an" cbi PORTC, CS1 sbi PORTC, CS1 cbi PORTC, CS2 sbi PORTC, CS2 ; jetzt sind beide Displayhälften an ; Reset ldi lcd_command, LCD_RESET_PORTA out PORTA, lcd_command cbi PORTC, CS1 sbi PORTC, CS1 ; clear display rcall clear_display_LCD
-
Thread
ADC wert über RS232 senden
>> PORTC = 0xFF; //Enables Pull-Up on PC0 > Analog Strom vom Laser ----- direckt an PINC.0 Warum schaltest du die Pull-ups an PC0 an? > AREF------100n condensator (weil int AREF wird benutzt) Wo
>>> PORTC = 0xFF; //Enables Pull-Up on PC0 >> Analog Strom vom Laser ----- direckt an PINC.0 >Warum schaltest du die Pull-ups an PC0 an? Ist das verbessert? IMHO ist es kontraproduktiv per Pull-up Vcc
-
Thread
Allgemeine fragen zum ansteuern von Dot-Matrixanzeigen.
= 1 : Return Zeile6: Portd. 5 = 1 : Return Zeile7: Portd. 6 = 1 : Return Spalte1: Portc. 0 = 1 : Return Spalte2: Portc. 1 = 1 : Return Spalte3: Portc. 2 = 1 : Return Spalte4: Portc. 3 = 1 : Return Spalte5: Portc. 4 = 1 : Return End[/code] hier würde praktisch
-
Thread
LCD Ausgabeport definieren
CODEVISION AVR von einem Programm von mir: // Display pin assignments #define LCD_E PORTC.4 // PC4 #define LCD_RS PORTC.5 // PC5 #define LCD_WR PORTC.6 // PC6 #define LCD_PORT PORTC // PC0-PC3 z. B. um das LCD_E zu anzusteuern
umgehen möchte :) Und zwar oben bei der definierung des Ports. #define LCD_PORT PORTC // PC0-PC3 Dort wird als Datenports PortC 0-3 verwendet. Also von unten aufgefüllt. In meinem Programm wollte ich aber an PortD bei D4 beginnen. Also PortD4 - PortD7. Fidi
-
Thread
AVR Ports und Pins Verständnisfrage
PORTB logisch 1 machen will, muss ich 00010000 anlegen. Jetzt sehe ich aber auf einer Grafik das z.B PORTC auf dem Atmega328 nur 7 Pins hat, alle anderen 8, deswegen bin ich mir irgendwie nicht mehr ganz sicher ob meine bisherige Überlegung stimmt. fg
mir irgendwie nicht mehr ganz sicher ob > meine bisherige Überlegung stimmt. Das stimmt schon so. PORTC hat einfach einen Pin weniger weil dafür im 28-Pin Gehäuse kein Platz mehr war, sonst ist er ein Port wie jeder andere.
-
Thread
AVR springt nicht aus Funktion
<util/delay.h> #define Stat_LED_bl PC5 #define Stat_LED_rt PC6 void test_Funktion() { PORTC |= (1<<Stat_LED_bl); // blaue Status-LED einschalten } int main(void) { test_Funktion(); PORTC |= (1<<Stat_LED_rt); // rote Status-LED einschalten while (1) {
findest. >Das führt zumindest genau zu dem verhalten. Nö, macht es nicht. Im M103-Mode wäre PortC generell als Ausgang konfiguriert. MfG Spess
-
Thread
Viele Magnetventile per MCU ansteuern
schieberegisterpins messen kann wenn ich im debugger einzeln durchsteppe meine kontroll led an PortC blinkt die ganze zeit wunderbar vor sich hin und lässt sich auch nicht durch anfassen oder dergleichen stören! [c] #include <avr/io.h> #include <util/delay.h> int main(void) { PORTC
Clock Input von 1 auf 0 } _delay_ms(1000); //1 Sek warten PORTC = 0x01; //LED einschalten _delay_ms(1000); //1 Sek warten PORTC = 0x00; //LED ausschalten _delay_ms(1000); //1 Sek warten } } [/c]
-
Thread
Verständnisfrage zu 62xxx Ram's
temp4,$90 OUT PortA,temp4 ;Ausgabe D08-D16 auf PortA OUT PortC,temp4 ;Ausgabe D00-D07 auf PortC CBI DDE ;Daten liegen auf Datenbus an NOP NOP CBI MWC ;2 Takte NOP ;Zeit für PortBx -> PinBx (CBI 2 Takte) NOP ;Schreibimpuls liegt NOP
Arbeitsregister LDS temp2, Adr1 LDS temp3, Adr2 OUT PortC,temp3 ;Ausgabe A16-19 auf PortC CBI ALH ;Adresslatch verriegeln OUT PortA,temp2 ;Ausgabe A08-A16 auf PortA OUT PortC,temp1 ;Ausgabe A00-A07 auf PortC CBI ALL
-
Thread
Pulsweite messen (Input Capture) mit ATMega328p
define baud FOSC/16/baud_rate-1 #define TICKS_VAL (FOSC/256) #define LED_PIN(state) { (state)?(PORTC |= (1<<PC0) ):(PORTC &= ~(1<<PC0)) ; } #define TOGGLE_LED() {PORTC ^= 1<<PC0; } void capture_function(); volatile uint8_t button_flag=0; volatile uint8_t capture_occured =0; volatile uint8
LED_PIN(CLEAR); } void main() { DDRC = 1<<PC0; /*Pin PC0 os output LED */ PORTC = 0b00000001; /*Enable PC0 internal pullup */ DDRB = 0x00; /*PB0 as INPUT*/ PORTB=1<<PB0; usart_init(baud); init_input_capture(); sei(); while(1
-
Thread
ATMega8, Multiplexing, ULN2803a
eine Multiplex-Schaltung mit 4 x 7-Segment-Anzeigen. (s.Skizze) Die Ports D schalten die Ziffern, PortC - die Zehner, Hunderter etc. Die Skizze ist etwas falsch, was die PNP-Transisotorverschaltung angeht (Basis an PC, Kollektor an Segment-Kathode) Um an der Basis für kleine Spannung zu sorgen schalte
Hm.. Also schalte ich jetzt vor den PortC einfach meinen ULN2803a (auf GND schalten, COM offen lassen)? Brauche ich dann überhaupt meinen, in diesem Fall 1kOHM Widerstand, weil der Treiber ja auch 2,7 kOhm Resistor vorzuweisen hat? Und
-
Thread
Schalten eines Tasters
EDIT: [avrasm]SBI PORT PORTC,4[/avrasm]
OK...Blöd wenn die Katze vorzeitig auf Enter drückt ;D Ich meine natürlich: [avrasm]SBI PORTC,4[/avrasm] So jetzt aber
-
Thread
Variablenzuweisung PIC18f2525
ich zum Beispiel sagen kann das Bit 1 des Port B heißt nun sensor. Habe es mal mit : char sensor = PORTC.RC1; aber das scheint unsinn zu sein. Vielleicht kann mir ja jemand weiterhelfen. Mfg Timo
was gehen würde ist z.b. #define sensor PORTC.RC1 danach kannst du im program z.B. "sensor=1;" verwenden. /Ernst
-
Thread
XMEGA & TWI -> Lese Problem
Page_adress ist die Slave ID und Adress ist die Addresse der Speicherzelle. Der Block mit dem PortC ist noch nicht dynamisch, da ich da noch keine Arbeit reingesteckt hatte. Btw. das ist von einem C++ Projekt. Wenn du also nicht TWIC nutzt musst du da noch den Port ändern. [c] void twi_read(TWI_t
if(twiname->MASTER.STATUS & (1<<TWI_MASTER_ARBLOST_bp)) { twiname->MASTER.CTRLA = 0; PORTC.DIRSET = PIN1_bm; for(uint8_t i=0;i<9;i++) { PORTC.OUTSET = PIN1_bm; _delay_us(20); PORTC.OUTCLR = PIN1_bm; _delay_us(20); } PORTC.DIRCLR = PIN1_bm;
-
Thread
Steuerung von EA DOGM163 mit einem ATMega32
lcd_init(LCD_DISP_ON); lcd_clrscr(); lcd_puts("LCD Test Line"); while(1) { PORTC |= 2; delayMS(1000); PORTC &= ~2; delayMS(1000); } return(0); } [/c] Was ich mich erwartet habe war, daß ich "LCD Test Line" schreibe, und dann der Display in Sekundentakt
angeschlossen hast. Wenn dein Schaltplan stimmt, dann nicht so wie du es hier beschrieben hast. PORTC ... die JTAGEN Fuse hast du schon abgeschaltet?
-
Thread
ATMega 32 2xMotor + Lichtsensor
Cnt=0; if(clock==1) // bei jeden überlauf des Timers wird der PORTC|=2; //clock einmal auf 1 bzw beim nächsten Überlauf if(clock==0) // auf 0 gesetzt, um einen Takt für die Motor_clock PORTC&=0xFD; // Leitung zu erzeugen
{ if(Cnt>=10) { clock^=1; Cnt=0; if(clock==1) PORTC|=8; if(clock==0) PORTC&=0xF7; } } SREG=SREG|0x80; return(0); } 2.)Hier setze ich meine Ein u Ausgänge: void Init_Blister
-
Thread
Hilfe: Ausgang über Taster schalten ! Anfänger!!
1) { PORTC.2 = PORTD.2; }; Das läuft aber so nicht! Hilfe ich brauch ein Erfolgserlebnis!!
@rüdiger: du meintest sicher: PORTC.2 = PIND.2
-
Thread
Tasterstatus speichern und EEPROM beschreiben/lesen
digital CMCON0 = 0b00000111; //Comperators turned OFF PORTA = 0x00; PORTC = 0x00; TRISC = 0b11111111; //set PORT C INPUT TRISA = 0b00000000; //set Port A OUTPUT if ( PORTC == 0b00001000 ) { i = 1; } else { i =
>ersetze > > if ( PORTC == 0b00001000 ) { > i = 1; > } > > else { > i = 0; > } > >durch > if ( PORTC == 0b00001000 ) { > i = !i; > } 1. Warum ? 2. Macht das zweite "IF" was anderes als das
-
Thread
2 ICs 74HCT595 an MEGA8
nachgeschoben werden. Ich erwarte, dass mein Byte am ersten 74HCT595 genauso angezeigt wird wie an PORTC. Es wird zwar angezeigt, aber mit vertauschten Nibbles. Bit0 erscheint an Q7 des 74HCT595. Normalerweise soll Bit7 zuerst reingeschoben werden, damit es letzendlich an Q7 steht. Mein Programm befördert
es sollten doch nur "Nullen" an den Ausgängen von IC2 sein PORTC=~muster;// Kontrolle des auszugebenden Bytes, wird an PORTC richtig angezeigt PORTD &=~ 1<<shiftpd3; // PD3 Shift PORTD &=~ 1<<storepd1; // PD1 Store for(int i=0;i<=7;i++
-
Thread
Bitfeld definition
break; case 3 : PORTC= 0x04; //3. Ziffer PORTD = ~ PRG_RDB(Segmentfolge + Zl_minute5); break; case 4 : PORTC= 0x08; //4. Ziffer PORTD = ~ PRG_RDB(Segmentfolge + Zh_minute5); break; case 5 : PORTC= 0x10; //5. Ziffer PORTD = ~ PRG_RDB(Segmentfolge + Zl_stunde) break; case 6 : PORTC= 0x20; //6. Ziffer PORTD = ~ PRG_RDB(Segmentfolge + Zh_stunde);
-
Thread
I2C am ATMega88
define F_CPU 1000000UL #include <avr/io.h> #include "util/delay.h" #include "i2cmaster.h" ... PORTC |= (1 << 4); //pullups PORTC |= (1 << 5); while(1) { _delay_ms(500); i2c_init(); _delay_ms(50); i2c_stop(); _delay_ms(50); i2c_init(); _delay_ms(50); i2c_start_wait(0x51+I2C_WRITE
am Port C. Richtig ist also diese Datei direkt anzupassen wie folgt: #define SDA_PORT PORTC // SDA Port D #define SCL_PORT PORTC // SCL Port D Vielen Dank an Alle die mich hier unterstützt haben. Ich hoffe diese Lösung hilft jemanden Anderen der auch
-
Thread
LED Matrix Betrieb?
= "m32def.dat" $crystal = 8000000 $hwstack = 150 $swstack = 200 $framesize = 200 Config Portc = Output 191_load Alias Portc.5 164_data Alias Portc.6 164_clk Alias Portc.7 Dim Datenbyte As Byte Dim Zeile As Byte Dim A As Byte Dim B As Byte Config Timer0 = Timer , Prescale = 64
-
Thread
Timerinterrupt und Pointer in gcc
auf Ausgang stellen, indem das gesamte DataDirectionRegister auf 1 gesetzt wird while(A<999) PORTC &=~(1<<PC5); //eine Sekunde lang die LED leuchten lassen zeitgeber=0; //Variable für das Timing des Auslesen auf 0 setzen PORTC |=(1<<PC5); pdata=&dataraw[0]; while(1) {if (pdata ==&dataraw[SIZE]) { PORTC &= ~(1<<PC5); anzahl=0; pdata=&dataraw[0]; PORTC |=(1<<PC5); } } } [/c]
-
Thread
Lampe blinken lassen für eine Steuerung in Bascom (ATMega8)
Ahnung. Hier der Code in Bascom: [pre]$regfile = "m8def.dat" $crystal = 8000000 Config Portc.1 = Input Config Portc.2 = Input Config Portc.3 = Input Config Portc.4 = Input Config Portc.5 = Input Config Portd.0 = Output Config Portd.1 = Output Config Portd.2 = Output Config Portd.3 = Output Set Portc.1 Set Portc.2 Set Portc.3 Set Portc.4 Set Portc.5 Config Debounce = 30 Const An = 1 Const Aus = 0 Einschalten Alias Pinc.1 Ausschalten Alias Pinc.2 Rauchmelder Alias Pinc.3 Notaus
-
Thread
LCD an Atmega 168 anschließen
[code] Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Portc.7 , Rs = Portc.6 [/code] Oh, Herr ....
durch ebendiesen, was das für den Programmablauf bedeutet kannst du dir ja denken. 2. Bei PortC fällt mir ein dass es da was gab mit JTAG-Fuse der muss ausgeschaltet sein wenn man den Port benutzen will Ich bin mir aber nicht sicher ob das bei dem 168 auch so ist.
-
Thread
high & low Byte zusammensetzen
PORTB &= ~ ( 1 << PB1 | 1 << PB2 ); __disable_interrupt(); PORTB |= (1 << PB2); //PORTC &= ~ (1 << PC0 | 1 << PC4 | 1 << PC1 | 1 << PC5 | 1 << PC3 | 1 << PC2); } [/C]
PORTB &= ~ ( 1 << PB1 | 1 << PB2 ); __disable_interrupt(); PORTB |= (1 << PB2); //PORTC &= ~ (1 << PC0 | 1 << PC4 | 1 << PC1 | 1 << PC5 | 1 << PC3 | 1 << PC2); }
-
Thread
GCC, Word statt Byte Zugriffe, Optimierung?
: 10: PORTC = (PORTC & 0xF7) | ((data & 0x01)<<3); IN R18,0x15 In from I/O location ANDI R18,0xF7 Logical AND with immediate MOV R20,R24 Copy register CLR R21
was geschieht, wenn Du mit char-Konstanten arbeitest: void set_outputs(uint8_t data) { PORTC = (PORTC & '\xF7') | ((data & '\x01')<<3); PORTD = (PORTD & '\x03') | ((data & '\x7E')<<1); PORTB = (PORTB & '\xFE') | ((data & '\x80')>>7); }
-
Thread
interner Pull Up Widerstand PIC18F2550 an PORTC
Hatt denn keiner mal den PORTC konfiguriert? Seppi
Hallo Seppi, PORTC hat keine Weak-PullUps. Die sind nur für PORTC und PORTD vorhanden. Siehe Datasheet; 10.2ff. Viele Grüße, Marcus
-
Thread
Triviales Problem mit PIC16f690 und TMR0 Interrupt
einfach im sekundentakt erst einmal eine LED des PIC Kit 2 an und ausschalten. dazu verODERe ich den PORTC mit einer Bitmaske... (0x01) Das Problem: DIE VERDAMMTE LED BLEIBT IMMER AN!!!! Assembler Code: #include <p16F690.inc> __config (_XT_OSC & _WDT_OFF & _PWRTE_ON & _MCLRE_OFF & _CP_OFF
,T0IF bsf INTCON,GIE clrf PORTA ;Port A, B und C Low clrf PORTB clrf PORTC goto loop loop: goto loop interrupt: movf PORTC,w xorlw 0x01 movwf PORTC bcf INTCON,T0IF retfie end Bitte seht mir nach falls es sich um
-
Thread
timer/counter 1+pwm auf pin ausgeben
0 << CS11)|(1 << CS10); Fahrt_vorwaerts(); ////hier die funktion /////// #define MRR PORTC &= 0x7F; #define MRV PORTC |= 0x80; #define MLR PORTC &= 0xBF; #define MLV PORTC |= 0x40; void Fahrt_vorwaerts(void) { MLV; MRR; } so aber weiterhin besteht das problem
-
Thread
ATTiny12 + bascom
Code: $regfile = "attiny12.dat" $crystal = 1000000 Config PORTB.0 = Output Do Portc.0 = 1 Waitms 500 Portc.0 = 0 Waitms 500 Loop End
STOPP! PORTC ist natürlich PORTB!
-
Thread
Led glimmt leicht mit ISP ohne Funktion
reserviert $framesize = 40 'im Speicher werden für den Frame 40 Byte reserviert Config Portc.0 = Output 'Ein Pin wird als Ausgang konfiguriert PC0 (also Pin0 von Port C) Do Portc.0 = 1 'Pin wird auf High, also 5V geschaltet Waitms 100 Portc.0 = 0