-
Thread
AT Mega 88 Interrupt
EICRA = (1 << ISC11); EIMSK = (1 << INT1); __enable_interrupt; ISR (INT1_vect) { PORTC |= ( 1 << PC0); } [/C] Was fehlt noch was damit diese "einfache" InterruptFunktion aufgerufen wird?
int main(void) { DDRB = 0x06; PORTB = 0; DDRC = 0x3F; PORTC = 0; DDRD = 0x00; PORTD = 0x1F; //Interrupt INT1 __enable_interrupt(); EICRA = (1 << ISC11); EIMSK = (1 << INT1); while(1)
-
Thread
glcd 240X128 mit t6963 und AVR 8515
'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-
* 64 , Dataport = Porta , Controlport = Portc , Ce = 2 , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 4 , Fs = 5 , Mode = 8 Cls Locate 1 , 1 Lcd "TEST" resultat: nicht geht ! wer kann helfen ? was ist falsch ?
-
Thread
AVR, Externer Interrupt 11 beim Atmega168 -> Howto-Problem
------------------------ ' Port-Settings (Beispiel) ' ------------------------ Sensor_1 Alias Portc.3 ' PCINT 11 Sensor_2 Alias Portc.2 ' PCINT 10 Sensor_3 Alias Portc.1 ' PCINT 9 Sensor_4 Alias Portc.0 ' PCINT 8 Config Sensor_1 = Input Config Sensor_2 = Input Config Sensor_3 = Input Config Sensor_4 = Input Sensor_1 = 1
-
Thread
LCD Routine (C) bringt fehler
uint16_t i; for (i=0; i<z; i++) delay_us_(999); } void lcd_flash_e (void) { PORTC|=(1<<DDC4); delay_us_(5); PORTC&=~(1<<DDC4); delay_us_(50); } void lcd_write (uint8_t data, uint8_t rs) { uint8_t dataBits ; if (rs) dataBits=0x20; else dataBits=0; PORTC=dataBits |(data>>4); lcd_flash_e (); PORTC=dataBits | (data&0x0F); lcd_flash_e(); delay_ms_(2); } void lcd_cls (void) { lcd_write(0x02,0); delay_ms_(2);
-
Thread
Problem Bascom Uhr
hwstack = 32 $swstack = 10 $framesize = 40 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0 Config Lcdbus = 4 Cursor Off Ddrb = &B11111111 Ddrd = &B00000000 Portd.0 = 1 Portd.1 = 1 Portd.2 = 1 Portd.3 =
-
Thread
Zusammenfassen von 3 externen Interrupts?
all Interrupts while(1) { } } ISR(INT2_vect) // INT2 on PB5 { PORTC ^= 0x04; _delay_ms(500); EIFR |= (1<<INTF2); // Clear Int.-Flag } ISR(INT1_vect) // INT1 on PB2 { PORTC ^= 0x02; _delay_ms(500); EIFR
Schmeiß das define raus, das ist falsch! Und dann: [c] ISR(INT0_vect) { PORTC ^= 0x01; } ISR( INT1_vect, ISR_ALIASOF(INT0_vect)); ISR( INT2_vect, ISR_ALIASOF(INT0_vect)); [/c] Peter
-
Thread
Dj Wandbeleuchtung
} if(i==7) { for(int o=0; o<=7; o++( { PORTB=0x00; PORTC=(1<<o); _delay_ms(50); PORTC=0x00; } } if(o==7) { for(int p=0; p<=7; p++) { PORTC=0x00; PORTD=(1<<p); _delay_ms(
} if(i==7) { for(int o=0; o<=7; o++( { PORTB=0x00; PORTC=(1<<o); _delay_ms(50); PORTC=0x00; } } if(o==7) { for(int p=0; p<=7; p++) { PORTC=0x00; PORTD=(1<<p); _delay_ms(
-
Thread
Timerinterrupt kommt nur einmal
T4 T3 T2 T1 T0 PortC X X X X X X T7 T6 Sind summasummarum 8 Taster, habe sie zwecks Anschaulichkeit schon mal durchnummeriert, so wie sie hinterher auch in Deiner Varibale sortiert sind. Die Xe kennzeichnen
einliest und den Inhalt von PINC um 6 Bit-Stellen nach links schiebst, steht da folgendes (PortB und PortC sind hier nur Platzhalter und haben nichts mit den Registern PORTB und PORTC zu tun!): 7 6 5 4 3 2 1 0 PortB X X T5 T4 T3 T2 T1 T0 PortC T7 T6 0 0 0
-
Thread
LTC1257 Low Level Routinen
ich auf der rechten Seite DACIN oder DACOUT verwende. Bisher las ich Portausgänge auch über z.B. PORTC: z.B. [c]PORTC = PORTC | (1<<DATA)[/c] Was wäre der Unterschied zu : [c]PORTC = PINC | (1<<DATA)[/c] so wird es ja hier verwendet , oder? Noch eine kleine Frage zu diesem Tutorial/Code
-
Thread
Wartezeiten effektiv (Scheduler)
Timer sind ebenfalls sehr nützlich. Dennoch ein Verbesserungsvorschlag: der Code initialisiert den PortC nicht, schaltet also auch die Pullups nicht ein. Out-of-the-zip hat das bei mir sehr schöne Random-Muster zur Folge gehabt - gegen völlig wild schwingende Eingänge hilft eben auch 4-fach Abtastung
Bene Jan schrieb im Beitrag #2161658: > void test(void) > { > DDRC = 0b00000111; > PORTC = 0b00000000; > } ääähm... wierum genau hast du denn deine leds angeschlossen..? könnte dein problem vielleicht einfach nur sein, das du portC auf 0x00 stehen lässt...?
-
Thread
Analog Comparator Atmega16 GCC
(void) { /*----------PORT Initialisierung----------*/ // LEDs DDRC = 0xFF; // setzte PORTC als Ausgang, LED1-8 PORTC = 0x00; // LEDs ein /*----------Analog Comparator---------*/ ACSR &= ~(1<<ACD); //AnalogComparator ein ACSR |= (1<<ACBG)|(1<<ACIE)|(1<<ACIS1)|(1<<ACIS0
sei(); /*----------PORT Initialisierung----------*/ // LEDs DDRC = 0xFF; // setzte PORTC als Ausgang, LED1-8 PORTC = 0x00; // LEDs ein /*----------Analog Comparator---------*/ ACSR &= ~(1<<ACD); //AnalogComparator ein ACSR |= (1<<ACIE); //Interrupt enable ein
-
Thread
Threads mit avr
geschichte...): ------------------------------ void main(void) { PORTB=0x00; DDRB=0x00; PORTC=0x00; DDRC=0xFF; while (1) { if(PINB.1) { PORTC=0x0F; delay_ms(2500); PORTC=0x00; }
{ PORTC=0xFF; } x++; delay_ms(1); } delay_ms(2500); PORTC=0x00; } } ---
-
Thread
Probleme mit Motor an Atmega8/PWM
PORTC = 0b00000000; //PORTC = 0x40; //Daten ausgeben (1=Strom auf Pin, 0= kein Strom auf Pin) //PORTC = 0x40; //Hex-Schreibweise //PORTC = 0b01000000; //binär-Schreibweise //PORTC |= (1<<PC6); //Einzel-Bitmanipulation //PORTC &= ~(1<<PC5); //LED einschalten //PORTC |= (1<<PC5); //LED ausschalten DDRD = 0x00;
-
Thread
Programmierung einer LED-Anzeige zu langsam
3; ... Vorlage2[0] = 0; ... Vorlage2[9] = 1; Vorlage2[10] = 3; [/c] und dann PORTC = Vorlage[Wert]; PORTD = Vorlage2[Wert];
PORTC kannst du komplett zuweisen, das ist kein Thema. Aber am Port D musst du ein wenig sorgfältiger sein. Erst die beiden untersten Bits (welches sind es jetzt eigentlich: PD0 und PD1 oder doch PD1
-
Thread
Warum verlässt der die Endlosschleife?
ifndef F_CPU #define F_CPU 12000000UL #endif int main (void) { DDRC |= (1 << PC0); PORTC |= (1 << PC0); while (1) { PORTC &= ~(1 << PC0); _delay_ms(200); PORTC |= (1 << PC0); _delay_ms(200); } return 0; } [/c] Beim
#endif #include <util/delay.h> static int i; int main (void) { DDRC |= (1 << PC0); PORTC |= (1 << PC0); while (1) { PORTC &= ~(1 << PC0); for (i=0; i<10; i++) { _delay_ms(20); } PORTC |= (1 << PC0); for (i=0; i<10; i++)
-
Thread
AVR Studio Zahlenschloss Programm Problem
nicht - da gibts probleme... erstmal zur Funktion selbst: Es gibt 2 Leds, Rot und Grün. Rot an PORTC 0x02; grün an PORTC 0x01; dann ein Relais an 0x04. als "Tastatur" habe ich erstmal einen BCD-Dekodierschalter genommen, welcher mit einem druck auf einen Taster an PINC 0x08 bestätigt wird.
} if (PINC==0x00) i++; } if (code=='1990') { PORTC=0x05; _delay_ms(3000); PORTC=0x00; i=0; } else { PORTC=0x02; _delay_ms(3000); i=0; } } }
-
Thread
TX und RX Kommunikation PIC16F688
; RCSTA = 0b10010000; while(1) { if ( RCREG == 0xAF ) { PORTC == 0b00000001; } } } [/c] Leider funktioniert das Programm nicht und ich kann meine Fehlerquelle nicht finden. Ich hoffe ihr könnt mir helfen. Mein Ziel ist es, am Senderpic
Auf den ersten Blick ist mir folgendes aufgefallen: PORTC == 0b00000001; Mit == wird der Port verglichen und nicht gesetzt. Zum setzen des Ports = verwenden.
-
Thread
PIC18F4550 kann PORTE und PORTD nicht beschreiben?
naja habs hinzugefügt hat aber nichts gebracht..... sonst nochn vorschlag? PORTA PORTB PORTC funktionieren.... nur die leds auf porte wollen nicht angehen...
"PORTA PORTB PORTC funktionieren.... nur die leds auf porte wollen nicht angehen..." ich kenn den PIC nicht aber nur so ne banale Frage: bist du sicher, dass PORTE überhaupt sourcen kann und nicht bloß sinken?
-
Thread
Frequenz errechnen
Output ' Stiftleiste JP 2; Pin 3; PC0 Stepper1_reset Alias Portc.0 Config Pinc.1 = Output ' Stiftleiste JP 2; Pin 4; PC1 Stepper1_direction Alias Portc.1 Config Pinc.2 = Output ' Stiftleiste
Output ' Stiftleiste JP 2; Pin 3; PC0 Stepper1_reset Alias Portc.0 Config Pinc.1 = Output ' Stiftleiste JP 2; Pin 4; PC1 Stepper1_direction Alias Portc.1 Config Pinc.2 = Output ' Stiftleiste
-
Thread
Interner PullUp eines Atmegas644
. aber die konfiguration mittels DDRC &= ~(1<<PC4); // Schalter der Platine ( Auf Eingang) PORTC |= (PC4); dochwar richtig oder ? Gruß Alex
Ersetz mal die Zeile PORTC |= (PC4); durch PORTC |= (1<<PC4);
-
Thread
Anfängerproblem PIC XC8 C
PortGndEnde; PortGnd++) { // for (PortLed = PortLedStart; PortLed >= PortLedEnde; PortLed++) { // PORTC = PortLed = 1; // __delay_ms(250); // PORTC = PortLed = 0; // } asm("CLRF PORTC"); // if (PortGnd == PortGndStart) { asm("BSF PORTC,2"); // PORTC = PortGnd = 1; // PORTC = PortGnd+1; // PORTC = 0; // } else { asm("BSF PORTC,3"); // PORTC = PortGnd+1; // PORTC = 1; // PORTC = PortGnd = 0; // } // } return; } Hallo
-
Thread
Am Anfang bereits gescheitert (LED schalten)
B0 High dann Anweisungsglock ausführen { DDRC |= (1 << DDC0); // Pin0 IO-Register C als Ausgang PORTC |= (1 << PORTC0); // Pin0 IO-Register C auf High setzten } return 0; }
{ if (PINB & (1 << PB0) ) // Wenn Pin B0 High dann Anweisungsglock ausführen { PORTC |= (1 << PORTC0); // Pin0 IO-Register C auf High setzten } else { PORTC &= ~(1 << PORTC0); // Pin0 IO-Register C auf Low setzten } } return 0; } [/C]
-
Thread
externer interrupt
1 << ISC10)|(1<<ISC11); sei(); while(1){ PORTC=0xff; _delay_ms(1); PORTC=0x00; _delay_ms(1); } } ISR(INT1_vect) { PORTB=0xff; PORTB=0x00; }[/c] Ein Signal des PortC wird dabei zum Test auf den INT1/PD3 gegeben. Zum Oszibild: blau PortC und gelb PortB
-
Thread
AVR Atmega32 Probleme Eingang abfragen
Auf PORTC sitzt JTAG. Per Fuse abschalten. Und delay_ms ist doof.
DDRD = 0x00; PORTD = 0xff; DDRC = 0xFF; while(1) { if ((PIND & 0x02)) PORTC |= (1<<PINC5); else PORTC &= ~(1<<PINC5); } } [/C] das reicht schon fürs erste um zu sehen, ob sich überhaupt was tut.
-
Thread
Atmega16 PortC p2-5 ohne Funktion
microcontroller Welt und steh vor einem Problem. Hatte mir eine LED Brücke gebaut (8 LEDs) und diese an PortC 0-7 angeschlossen. Dann diese alle mit DDRC = 0xFF; PortC = 0x00; alle auf Low Pegel gesetzt jedoch gehen nicht alle LEDs nur PC0 PC1 PC6 und PC7. Die andern sind ohne Pegel. Hab die selbe Programmierung
-
Thread
Problem mit ATMEGA16 / bread board / Netzteil
macht wohl eine zusätzliche Masseverbindung!? [c] . . DDRC = 0xFF; // PC0..PC7 as output PORTC = 0x00; // all PORTC output pins Off DDRA = 0x00; //all A port pins as input PORTA=(1<<PA0); //Enable internal Pull-Up resistors . . [/c]
, dank der 'Basis-Dauerverdrahtung'. > . > . > DDRC = 0xFF; // PC0..PC7 as output > > PORTC = 0x00; // all PORTC output pins Off PORTC? JTAG hast du abgeschaltet? Edit: Das mit dem JTAG ist schon ein Reflex, wenn irgendwas nicht geht und Port C involviert ist.
-
Thread
Problem mit DCF 77,5 Modul
' default use 40 for the frame space 'Config Portb.0 = Output Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0 Config Lcd = 16 * 4 'configure lcd screen Cursor Off Noblink Config Portd.5
-
Thread
PC => µC Daten senden um I/0 zu steuern
y++; } while(1) { for(y=0; y < 6; y++) { PORTB &= ~( 1 << z); PORTC = pic[y]; wait(10); PORTC = 0xFF; PORTB |= ( 1 << z);; z++; if(z == 6) { z = 0; } } } } [/c] Wen ich jetzt z.B. die ersten 6
[6]) { for(y=0; y < 6; y++) { PORTB &= ~( 1 << y); PORTC = pic[x][y]; _delay_ms(1); PORTC = 0xFF; PORTB |= ( 1 << y); } time++; } x++; time = 0; } } return 0; } [/c]
-
Thread
Problem mit ATmega1284, USART verursacht Resets
mem_iter,temp); if(mem_iter == lenght){uart_status = 0;} mem_iter++; break; } // PORTC = uart_status; } [/c]
PORTA5 #define GSCLK PORTA6 #define XERR PORTA7 int main(void) { DDRC = 0xFF; PORTC = (1 << 4); sei(); PORTC &= ~(1 << 4); PORTC = MCUSR; MCUSR = 0; while(1) { } } [/c] Auch hier treten die Resets auf, wenn an den UART gesendet wird. Hab an
-
Thread
Probleme beim Multiplexen mit 7-Segmentanzeigen
eigentlich anzeigen will. Das Programm sieht dann etwa so aus: PORTB=0x7F; Für die 8 in der Ste1le PORTC=0x01; Für die erste Stelle einzuschalten PORTB=0x30; Für eine 1 in der Stelle PORTC=0x02; Für die zweite Stelle einzuschalten usw... Wie hoch muss / darf denn die Frequenz sein, das man das
Wo hast Du die delays eingebaut? PORTB=0x7F; Für die 8 in der Ste1le PORTC=0x01; erste Stelle einschalten delay PORTC=0x00; erste Stelle ausschalten PORTB=0x30; Für eine 1 in der Stelle PORTC=0x02; zweite Stelle einschalten delay PORTC=0x00; zweite Stelle ausschalten
-
Thread
Präprozessoranweisung das erste Mal
Matthias. hier ist die Headerdatei: #ifndef keypad_h #define keypad_h #define keypad_port PORTC #if (PORTC=keypad_port) #define Taster PINC #if (PORTA=keypad_port) #define Taster PINA #endif extern unsigned char flankenwechsel2; extern unsigned char keypad_uebergeben;
/* Hardwaredefinitionen (avr/io.h muss bereits includiert sein) */ #define keypad_port PORTC #if (keypad_port == PORTC) #define Taster PINC #endif #if (keypad_port == PORTA) #define Taster PINA #endif #ifndef Taster #error "Taster ist nicht definiert" #endif /* Globale
-
Thread
ATmega8 PB2 (nicht INT0) als Eingang
Zunächst das Programm: $regfile = "m8def.dat" $baud = 19200 $crystal = 11059200 Config Portc.0 = Output Led Alias Portc.0 Config Pind.2 = Input Ausloeser Alias Pind.2 Do Portd.2 = 0 Led = Ausloeser Loop Es hängt an PD2 ein Eingabetaster dran. Dieser liegt auf 5V. Wenn er geschlossen
und 5Volt über Pullup. $regfile = "m8def.dat" $baud = 19200 $crystal = 11059200 Config Portc.0 = Output Led Alias Portc.0 Config Pind.2 = Input Ausloeser Alias Pind.2 Do Portd.2 = 1 Waitms 20 Led = Ausloeser Loop
-
Thread
DS1820 will nicht an Atmega32
Port?? (d.0) [c] $regfile = "m32def.dat" $crystal = 16000000 Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.2 , Rs = Portc.0 Config Lcd = 16 * 2 Config 1wire = Portd.0 Const Parasitpower = 1 Const Ds1820 = &H10 Const Skiprom = &HCC
also am JTAG liegt es nicht (habe sowie so schon von portc auf portb gewechselt) aber wie sieht es nun mit dem takt aus? ich ahbe einen 16MHz quarz und den chip auf external clock eingestellt, ist das richtig?
-
Thread
UART mit LIN-Protokoll
auslösen } }//parität else{ DDRC = (1 << DDC4); PORTC |= (1<<PC4);} //gelbe LED eischalten, somit liegt ein Paritätsfehler vor }//syncfeld }//FE }//ISR [/c]
else{ return UDR0; // Zeichen aus UDR an Aufrufer zurueckgeben } DDRC = (0 << DDC3); PORTC &= (0<<PC3); //rote LED ausschalten (receive) } [/c]
-
Thread
UART mit Logik schalten
funktion { DDRC = 0b11011111; //alle Pins als Eingang definiert außer PC5 0=Ausgang 1=Eingang PORTC = 0b00000000; //Pullups deaktiviert PORTC &= ~(1<<PC5); // fuer die Initialisierung low setzen. while(1) { if ( (PINC & (1<<PINC4)) && (PINC & (1<<PINC2)) ) //wenn PINC4(TX leitung von RS232) und PINC2(Atmega 2/2) high sind tue was { PORTC |= (1<<PC5); //setze PC5 high } PORTC &= ~(1<<PC5); //setze PC5 low } return 0; } [/c]
-
Thread
for Schleife
auslagern: > waits = 0; // signal wait = 0 > if(!(PINC&(1<<PC5))) // Abfrage PortC PC5Grün > leds_set_status(1,5); // schaltet LED 5 Grün auf ein > > else > leds_set_status(0,5); // schaltet LED 5 Grün auf aus
= 0; cnt++; if ( cnt == 50 ) { cnt = 0; if(!(PINC&(1<<PC5))) // Abfrage PortC PC5 LED 5 Grün leds_set_status(1,5); // schaltet LED 5 Grün auf ein else leds_set_status(0,5); // schaltet LED 5 Grün auf aus } } }
-
Thread
(Wahrscheinlich) Pointer Problem
RCLOCK595_PIN PC2 #define RCLOCK595_PORT PORTC #define RCLOCK595_DDR DDRC /////// #define RCLOCK595_high() (RCLOCK595_PORT |= _BV(RCLOCK595_PIN)) #define RCLOCK595_low() (RCLOCK595_PORT &= ~_BV(RCLOCK595_PIN)) ////////////////
////////////////////////////////////// #define DATA165_PIN PC5 #define DATA165_PORT PORTC #define DATA165_DDR DDRC //////////////////////////// #define CLOCK165_PIN PC4 #define CLOCK165_PORT PORTC #define CLOCK165_DDR DDRC #define CLOCK165_high() (CLOCK165
-
Thread
Anfänger: While-Schleife auf Atmega8
x=0; while (x<60000) { x++; PORTC = 0x00; } y=0; while (y<60000) { y++; PORTC = 0xff; } } return 0; [/c] } wenn ich es jeweils danach ausführen
x=0; while (x<60000) { x++; } PORTC = 0x00; y=0; while (y<60000) { y++; } PORTC = 0xff; } return 0; } [/c] Ich komme einfach nicht dahinter, woran
-
Thread
PIC18f2550 + USART ?
FSOC = 48Mhz Folgendes hab ich mit aus dem datenblat rausgelesen leider klapt es so nicht ; PORTC banksel TRISC ; Bank Wekseln movlw B'11000000' ; Portc I/O setzen (1=In, 0=Out) (Reinfolge RB7,RB6...) movwf TRISC ; Portc I/O setzen banksel PORTC ; Bank Wekseln clrf PORTC ; Portc auf 0 setzen ; USART initialisieren und Bautrate einstellen banksel SPBRG ; 9600 baud @ 20MHz movlw D'77' movwf SPBRG ;bcf BAUDCON, ABDOV ; Autobautrate
-
Thread
AVR-Ausgänge abfragen
1000; i++) _delay_ms(1); } } int main(void) { DDRC |= (1<<DDC0) | (1<<DDC1); PORTC |= (1<<PC0); PORTC &= ~(1<<PC1); while (1) { delay_s(1); PORTC ^= (1<<PC0); PORTC &= ~(1<<PC1); PORTC |= ((1 && (PINC & (PINC0)))<<PC1); } return 0; } Eine
> PORTC |= ((1 && (PINC & (PINC0)))<<PC1); Diese Zeile solltest du dir nochmal genauer anschauen.
-
Thread
Probleme mit LCD-Display und SPI Übertragung
das Display ist wie folgt verbunden: RS PORTD4 RW PORTD1 E PORTD0 DATA4 PORTC0 DATA4 PORTC1 DATA4 PORTC2 DATA4 PORTC3 Im Anhang ist die LCD Libary. Mein Programm: [c] #include <avr/io.h> #include <avr/interrupt.h> #include "lcd.h" #include "lcd.c" volatile
wie folgt > verbunden: > > RS PORTD4 > RW PORTD1 > E PORTD0 > DATA4 PORTC0 > DATA4 PORTC1 > DATA4 PORTC2 > DATA4 PORTC3 Sicher? Ich würde es mal mit Data7, Data6, Data5 und Data4 versuchen.
-
Thread
Bekomme 7Seg nicht ans leuchten mit ICM7218A
DDRD |= (0xFF); while(1) { PORTB |= (1 << LED); PORTC |= (1 << PIN_WRITE); _delay_ms(500); PORTB |= (1 << PIN_MODE); PORTD |= ((1 << PIN_ID5_DECODE) | (1 << PIN_ID7_DATACOMING)); _delay_ms(200); PORTC
; // SEGMENT A => ON _delay_ms(100); PORTC &= ~(1 << PIN_WRITE); _delay_ms(100); PORTC |= (1 << PIN_WRITE); _delay_ms(100); } PORTD &= ~(1 << PIN_ID7_DATACOMING);
-
Thread
ATmega8 Frequenz stimmt nicht
int); void USART_Transmit( unsigned char); void main( void ){ unsigned char a = 'U'; PORTC = (0<<PC3); PORTC = (0<<PC2); USART_Init (MYUBRR); do{ USART_Transmit(a); }while(1); } void USART_Init( unsigned int ubrr){ /* Set baud rate
int); void USART_Transmit( unsigned char); void main( void ){ unsigned char a = 'U'; PORTC = (0<<PC3); PORTC = (0<<PC2); USART_Init (MYUBRR); do{ USART_Transmit(a); }while(1); } void USART_Init( unsigned int ubrr){ /* Set baud rate */ UBRRH = (unsigned
-
Thread
Probleme mit Uart und ISR
servopos[4]>count) temp |=(1<<PD6); if(servopos[5]>count) temp |=(1<<PD7); if(servopos[6]>count) PORTC |=(1<<PC0); else PORTC &=~(1<<PC0); if(servopos[7]>count) PORTC |=(1<<PC1); else PORTC &=~(1<<PC1); PORTD = temp; if(count<2000)count++; // Die Impulse sollten alle 2ms gesendet
servopos[4]>count) temp |=(1<<PD6); if(servopos[5]>count) temp |=(1<<PD7); if(servopos[6]>count) PORTC |=(1<<PC0); else PORTC &=~(1<<PC0); if(servopos[7]>count) PORTC |=(1<<PC1); else PORTC &=~(1<<PC1); PORTD = temp; if(count<2000)count++; // Die Impulse sollten alle 2ms
-
Thread
Probleme beim Dividieren
Ja aber bei outp(z2,PORTC); //Hier tritt der Fehler auf! wird z2 doch gar nicht berechnet! z2 ist mit 1 initialisiert.
10" "4" ein. Ihr werdet sehen, dass bei diesem Wert alles vollkommen problemlos läuft. outp(b,PORTC); idle(100); } }
-
Thread
8Bit Timer Atmega16/Overflow Interrupt
TIMSK |= (1<<TOIE0); // Global Interrupts aktivieren sei(); //init LCD RS_0; PORTC = 0b00111000; E(); wait(); PORTC = 0b00001100; E(); wait(); PORTC = 0b00000001; E(); wait(); while (1) { if (TCNT0 == 0xff) { zaehler++; } if (zaehler
erlauben TIMSK |= (1<<TOIE0); //Global Interrupts aktivieren sei(); //init LCD RS_0; PORTC = 0b00111000; E(); wait(); PORTC = 0b00001100; E(); wait(); PORTC = 0b00000001; E(); wait(); while (1) { //Licht if (PINA&(1<<PINA5)) { DDRA |=
-
Thread
C-Script sieht den Wald vor lauter Bäumen nicht
for(i=0;i<8;i++)// alle am Port C { if(remaining[i+16]==now) { PORTC|=(1<<i); } } for(i=0;i<8;i++)// alle am Port D { if(remaining[i+24]==now) { PORTD|=(1<<i); } } _delay_ms(10); }
for(i=0;i<8;i++)// alle am Port C { if(remaining[i+16]==now) { PORTC|=(0<<i); } } for(i=0;i<8;i++)// alle am Port D { if(remaining[i+24]==now) { PORTD|=(0<<i); } } _delay_ms(10); }
-
Thread
Schieberegister an Atmega8
mein Code: $regfile = "m8def.dat" $crystal = 16000000 Ddrc = &B11111111 Shift_data Alias Portc.2 Sck Alias Portc.1 Latch Alias Portc.4 Dim Daten As Byte Daten = &B10101010 Do Shiftout Shift_data , Sck , Daten , 1 Set Latch Reset Latch Waitms 1000 Loop End
tolle Pollin Punktrasterplatine für den Atmega8 FALSCH beschriftet ist. Das Problem war, dass der PortC gar nicht dort ist, wo PortC drauf steht, sondern laut einer Schablone von http://halvar.at/elektronik/pollin_adapter_atmega8_schablone/ ganz links. Ich bedanke mich für eure Bemühungen und Entschuldige
-
Thread
Atmega16 flashprobleme
sieht genauso aus. Ist das normal kann ich PORTC nicht als normalen verwenden wie PORTA und PORTC? Ich sag schon mal danke für alle Antworten. Gruß und danke Daniel
> Ist das normal kann ich PORTC nicht als normalen > verwenden wie PORTA und PORTC? JTAG ausschalten Otto
-
Thread
switch geht nicht
PORTC = 0x01; break; case 0x02: PORTC = 0x02; break; default: // no key PORTC = 0xFF; }; } } [/c] Bin echt für jede Hilfe dankbar, denn
// pull ups for key inputs PortD2 and portD3 DDRC = 0xFF; // outputs for LEDs PORTC = 0xFF; // LEDs off for(;;) { PORTC = PINB; } } [/c] p.s.: Meine Glaskugel sagt übrigens, dass deine Eingänge einfach nur low-aktiv sind, d. h. du musst entweder mit ~PINB