-
Thread
Atmega8 und LCD
die alle dem aktiven Projekt hinzufügen und dann einfach kompilieren. Ob das bei Assembler auch so geht, weiß ich jetzt nicht.
8Mhz angesteuert werden. Die Ansteuerung soll im 4bit Modus erfolgen. DB4..DB7 des LCD hängen an PORTC0..3, RS an PORTC4, E an PORTC5 und R/W auf GND. Kontrasteinstellung über Poti. Die Verschaltung ist richtig, habe es mehrmals überprüft. Das LCD funktioniert auch bei Einschalten der Versorgung (erste
-
Thread
Trennmittel für Programm gesucht
$regfile = "m8def.dat" $crystal = 4000000 Config Timer1 = Timer , Prescale = 64 Config Portc = Output Config Portd.4 = Output Led Alias Portc.0 Led2 Alias Portc.1 Led3 Alias Portc.2 Led4 Alias Portc.3 Led5 Alias Portc.4 Led6 Alias Portc.5 Led7 Alias Portd.4 Led = 0 Led7 = 0
$regfile = "m8def.dat" $crystal = 4000000 Config Timer1 = Timer , Prescale = 64 Config Portc = Output Config Portd.4 = Output Led Alias Portc.0 Led2 Alias Portc.1 Led3 Alias Portc.2 Led4 Alias Portc.3 Led5 Alias Portc.4 Led6 Alias Portc.5 Led7 Alias Portd.4 Led = 0 Led7 = 0
-
Thread
SPI Atmega16M1
. (Aktueller Stand) [c] #include .... int main(void) { SPI_INIT(); while(1) { PORTC &= ~(1 << PC5); SPI_Transfer(0b00000101); PORTC |= 1 << PC5; } return(0); } [/c] Erkennt jemand einen Fehler in der SPI_INIT? die Transfer Funktion sollte so auf jeden fall in Ordnung
AVRe schrieb im Beitrag #4641315: > PORTC &= ~(1 << PC5); Als Ausgang gesetzt ? DDRC |= (1<<PC5); Normal ist doch PortB.4, also: DDRB |= (1<<PB4); und dann: PORTB &= ~(1 << PB4); Auch: [c] DDRB = (1 << DDB1) | (1 <
-
Thread
Rechteckgenerator Warteschleife
Impuls Loop Until Timer1 = Impuls Loop Until Pinc.5 = 0 Portc.3 = 0 Disable Timer1 Goto Auswahl[/c]
Sry, war gerade bei 10 Bit. 987 geht natürlich nicht, als Beispiel könnte natürlich der Wert 234 sein. Oder ist das Regiter beim 10 Bit Modus auch in 2x 5 Bit eingeteilt?
-
Thread
Controller führt befehle die er vom PC bekommt nicht aus (Bascom)
hwstack = 32 $crystal = 14745600 $baud = 9600 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.4 , Db6 = Portc.5 , Db7 = Portc.6 , E = Portc.2 , Rs = Portc.0 Dim B1 As Byte Cls If B1 = 65 Then Cls Locate 1 , 1 Lcd "LED A" End IF If B1 = 66 Then Cls Locate 1 ,
Do-Loop-Schleife, ohne läuft das Programm nur einmal durch. Es fehlt auch die Wertezuweisung der Variablen B1 (geht z.B. mit Input "text",B1)
-
Thread
kleines Programm
Hmm ich würde das ganze so verstehen, dass er PORTC einliest, negiert und letztlich wieder mit PORTC verodert und das ganze an PORTA ausgibt... Allerdings macht das keine großen Sinn, denn da kommt dann immer 0 raus..
/* C starts here */ volatile * const unsigned char PORTA = ..... volatile * const unsigned char PORTC = ..... unsigned char zeichen; { zeichen = *PORTA; zeichen= !zeichen; /* zeichen = ~zeichen */ *PORTC = zeichen; } /* das war jetzt VHIT, also vom Hirn ins Terminal, ohne Test oder
-
Thread
ATmega32 4facher Takt??
bei 128MHz blinkt sie normal. Programm: $regfile = "m32def.dat" $crystal = 12800000 CONFIG PORTC.1 = OUTPUT Do Toggle PORTC.1 Wait 1 Loop End Mfg
es geht mein mega644 läuft auch noch mit 27Mhz aber der ADC will dann nicht mehr ^^ bzw spuckt er nur totalen blödsinn aus .. und das bei dem größtmöglichem teiler bis 25Mhz geht es jedoch ein
-
Thread
swap in C Vs. Asm
Yalu X. schrieb im Beitrag #3304290: > PORTD = swap(PORTC); Dieser Code geht noch kürzer: [c] PORTD = 0; for(;;); [/c] Du meintest warscheinlich: [c] for(;;) PORTD = swap(PINC); [/c]
Peter Zz schrieb im Beitrag #3351547: > Und es geht doch: leider falsch...
-
Thread
IRMP - Infrared Multi Protocol Decoder
2002/3d0) aber natürlich reagieren die Geräte nicht so VHS off Kaseikyo 2002/3d0 nur der VHS geht aus HDrec off Kaseikyo 2002/3d0 nur der HDrec geht aus TV off Kaseikyo 2002/3d0 weder der HDrec noch der VHS geht aus alle RC5 FB zeigen im IRMP nix an (interner 8MHz), dabei geht "meine" andere
Suppi werde es mal gleich ausprobieren ob es geht
-
Thread
LC Display über Atmega16 anders als über Atmega8??
$regfile = "M8def.dat" $crystal = 4000000 Config Lcd = 20 * 2 Config Lcdpin = Pin , Rs = Portc.0 , E = Portc.1 , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 Config Lcdbus = 4 Config Portd.7 = Output Schleife: Cls Locate 1 , 1 Lcd "Hallo Welt" Portd.7 = 1 Waitms
$regfile = "M16def.dat" $crystal = 4000000 Config Lcd = 20 * 2 Config Lcdpin = Pin , Rs = Portc.0 , E = Portc.1 , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 Config Lcdbus = 4 Config Portd.7 = Output Schleife: Cls Locate 1 , 1 Lcd "Hallo Welt" Portd.7 = 1 Waitms
-
Thread
Fenster/Türkontakte auswerten
PC1 als Eingang PORTC |= (1<<PC1); // internen Pull-Up an PC1 aktivieren DDRC &= ~(1<<DDC2); // Pin PC2 als Eingang PORTC |= (1<<PC2); // internen Pull-Up an PC2 aktivieren DDRC &= ~(1<<DDC3); // Pin PC3 als Eingang PORTC |= (1<<PC3); // internen Pull-Up an PC3 aktivieren DDRC &= ~(1<<DDC4); // Pin PC4 als Eingang PORTC |= (1<<PC4); // internen Pull-Up an PC4 aktivieren DDRC &= ~(1<<DDC5); // Pin PC5 als
-
Thread
Anschlussproblem am Atmega8
jo das geht musst du in der bascom configuration einstellen!
... oder z.B. diesen Aufruf: Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , Rs = Portc.0 , E = Portc.1 Config Lcd = 16 * 1 Cursor Off Hier kannst du für alle LCD-Datenleitungen beliebige Ports einsetzten. Diese müssen
-
Thread
(Wahrscheinlich) Pointer Problem
////////////////////////////////////// #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
nen printf bei jedem case hintergehangen damit ich sehe das er die auch wirklich durchführt, das geht aufjedenfall.
-
Thread
Atmega8 langsam, viel versucht = ratlos
Die PWM funktioniert sehr gut mit den Ports PortB 2-7 PORTC 0-7 PORTD 0-2 [c]uint8_t led, t; pb = 0; pc = 0; pd = 0; //fuer alle Zeitschritte in einem Zyklus der PWM //fange mit t=255 an und schalte an ab erreichter
als Ganzes setzen * oder nur mit etwas konstantem an die Portbits ran. * wenns gar nicht anders geht, dann willst du dir erst im Speicher die Einzelteile zurecht legen und dann in einem Rutsch auf den Port raus Alles andere ist für den µC Aufwand!
-
Thread
Fernbedien RC5 Empfänger
andere 8..12 breit ist, kannst Du schon klar erkennen, obs ein kurzer oder langer ist. Geeigneter gehts nicht. Peter
Nö, dann geht immer noch nichts ;o( Ich habe auch mal eine kleine Warte Zeit eingefügt (eine Dumme schleife) was auch nichts brachte. Also wenn es kein Timing Problem ist was dann? Das Programm geht ja mit dem
-
Thread
USART Mega8 funktioniert, ich verzweifele noch
USART_RX_BUFFER_SIZE]) { if (strncmp(temp, "DL", 2)==0) // Gültiges Zeichen { SETBIT(PORTC,PC0); if (temp[2] == (DIP + 48)) // Ja, richrtige Platine { //CLEARBIT (PORTC,PC0); set_chanel((temp[3]*10)+temp[4]); // Ja, Kanal aus String lesen set_supply
******************* // Byte empfangen SIGNAL (SIG_UART_RECV) { //if (PINC & (1 << PC0)) {PORTC &= ~(1 << PC0);} // LED an? Wenn ja, dan aus machen //else {PORTC |= (1 << PC0);} // Wenn nicht an, dann an machen unsigned char data; data = UDR; // Daten auslesen
-
Thread
Mega8 PortC trennen ?
Moin, ich möchte für ein Projekt den Port C vom M8 trennen. Also PinC.0 als ADC-Eingang, und den rest als Taster eingänge. Ist das möglich, oder sind dann alle als ADC/Digital eingänge ?
-
Thread
Global typedef struct mit signed char?
AxisRelPos += AXIS[AxisSelect].AxisDirection; if (AXIS[AxisSelect].AxisRelPos < 0) PORTC = 0; else PORTC = 255; }[/c] Wird mit signed / unsigned int deklariert, so wird AxisRelPos richtig als vorzeichenbehafteter Integer betrachtet. Wird dagegen int16_t
im Beispielcode an der unterschiedlichen Ausführung des Branches. Mit "signed int AxisRelPos" wird PORTC = 0, mit "int16_t AxisRelPos" wird PORTC = 255 ausgeführt. Das darf so nicht sein. Würd' vorschlagen, das sich das jemand Anders noch anschaut, nicht dass ich was übersehen hab'. Kann auch sein
-
Thread
Programmierung im Keil
Wenn schon PORTC&&0x01 ^^ dann bitte PORTC & 0x01 schreiben & = Binaeres UND && = Logisches UND
Ich hab den Fehler :) Den Befehl PORTC&... gibts gar nicht. Richtig gehts so if ( PINSC&0x01==1) { } Danke euch trotzdem für die Antworten , MFG
-
Thread
Nur 2 Zeilen statt 4 auf EA W164B-NLW
Pause nach dem Einschalten movwf loops call WAIT movlw B'00110000' ; 1 movwf PORTC bsf PORTC, LcdE nop bcf PORTC, LcdE movlw D'50' ; 50 ms Pause movwf loops call WAIT movlw B'00110000' ; 2 call Control8Bit movlw B'00110000' ; 3
Pause nach dem Einschalten movwf loops call WAIT movlw B'00110000' ; 1 movwf PORTC bsf PORTC, LcdE nop bcf PORTC, LcdE movlw D'50' ; 50 ms Pause movwf loops call WAIT movlw B'00110000' ; 2 call Control8Bit movlw B'00110000' ; 3 call
-
Thread
ADC Wandler ADCL
if ((RegelspannungL & 0x02)== 1) PORTD |= (1<<7); else PORTD &= ~(1<<7); PORTC = RegelspannungH;
Ich habe zum test ADCL auf PortC ausgeben, (ADCH auf PortC ging ohne Probleme) dann mit dem Oszi jeden Pin gemesen keine Änderungen alle bleiben auf 0.(ich habe natürlich die eingelesene Spannung verändert)
-
Thread
2 Servos und 2 verschiedenen Impulslängen mit Timer0?
folgt Port setzen { switch(pos) { case 0x0000: TCNT0 = 0xd5; PORTC &= ~(1<<PC0); break; // 0 Grad case 0x0010: TCNT0 = 0xB0; PORTC &= ~(1<<PC0); break; // 12 Grad ............................................................. .....................
{ if(scount<servolinks) // Impuls wieder auf HIGH setzen 3 entspricht 1ms { PORTC &=~((1<<PC1) | (1<<PC0)); // PIN C0 und PC1 LOW, damit Impulse am Servo HIGH } // Ende if else { if(scount>=3) { { PORTC |=(1
-
Thread
Bit in Ausgaberegister als Variable definieren
Mit #define mitten im Code geht es nicht, zumindest wüsste ich nicht wie. Danke im Voraus und einen schönen Tag Nicola
Hallo, ja, das geht tatsächlich mit uint_8. Ich dachte das geht eh nicht, deshalb habe ich es gar nicht erst versucht. Manchmal ist es eben einfach einfach. Danke! Lothar M. schrieb im Beitrag #6439911: > Und wenn
-
Thread
328P im powersave immer noch 1.8 mA
Es geht mir erstmal darum zu entscheiden, ob es an der Hard- oder an der Software liegt, und das geht mit obigem Dreizeiler.
> sleep_enable(); > sleep_mode(); > } > [/c] > S. Landolt schrieb im selben Artikel: >Es geht mir erstmal darum zu entscheiden, ob es an der Hard- oder an der >Software liegt, und das geht mit obigem Dreizeiler. Hallo S. Landolt, okay, habe ich verstanden. Leider muss ich das auf morgen
-
Thread
programmieren funktioniert nicht
{ volatile uint16_t i; volatile uint16_t ii; //PORT C Output; DDRC = 0xFF; PORTC = 0xff; // Port C BitMuster 1111 1111 while(1) { for(ii=0; ii<4; ii++) { for(i=0;i<40000;i++); } PORTC =~ PORTC; // Port C invertieren } }
der Prommer zu schnell), hier hilft ein '-B 10' für den avrdude. Falls es dann noch immer nicht geht kann man weiter sehen. HTH
-
Thread
LCD (Funduino) ansteuern mit Bascom
Ausgang; Rest als Eingang Portd = &B10001111 'Eingänge auf high legen 'Config Portc.5 = Output 'zur Probe 'Config Portc.4 = Output Config Scl = Portc.5 'Konfigurieren von I2C Config Sda = Portc.4 Config Lcd = 16 * 2 'nicht unbedingt
LCD-Befehl umgesetzt! '****************** Initialisierung *********************** Config Scl = Portc.5 'Konfigurieren von I2C Config Sda = Portc.4 Config Lcd = 16 * 2 'nicht unbedingt nötig Config I2cdelay = 1 Initlcd Waitms 500
-
Thread
Ampelschaltung funktioniert nicht,
Hallo, Ich hab diesen Code ausprobiert, aber es geht nicht ! Also die dritte LED geht nicht an. Der Port ist net beschädigt oder so...hab ich getestet. $regfile = "ATtiny2313.DAT" $crystal = 12000000 Config Pinb.0 = Output Config Pinb.1 =
toggle ist ja umschalten. Kann ich mit diesem Befehl die Ports ein-und auschalten ? Config Portc.0 = Output Portc.0 = 1 Portc.0 = 0 Danke
-
Thread
AVR/Atmega8 an STK500 - UART/USART
c = i + "0"; USART_TransmitC(c); } */ while (1) { DDRC = 0xff; PORTC = 0x00; _delay_ms(500); PORTC = 0xff; _delay_ms(500); USART_Transmit(0xFF); } return 0; // never reached } [/code]
c = i + "0"; USART_TransmitC(c); } */ while (1) { DDRC = 0xff; PORTC = 0x00; _delay_ms(500); PORTC = 0xff; _delay_ms(500); USART_Transmit(0x00); } return 0; // never reached } [/code]
-
Thread
USART ATmega Falsche Zeichen
14745600 #define BAUD_USER 115200 #define BAUD_CHIP 115200 #define HOST_TX_ON PORTC |= 0x02 #define HOST_TX_OFF PORTC &= ~0x02 #define HOST_RX_ON PORTC |= 0x01 #define HOST_RX_OFF PORTC &= ~0x01 #define HOST_SHDN_ON PORTD |= 0x80 #define HOST_SHDN_OFF PORTD &= ~0x80
gekreuzt - nicht gekreuzt)? Mach mall folgenden Versuch: Nimm den Prozessor aus dem Sockel (wenn das geht). Dann verbindest du im Sockel den Tx Pin mit dem Rx Pin. Am Terminal tippst du dann ein paar Zeichen. Die laufen vom Terminal durch das Kabel, durch den MAX232 zum Sockel, gehen über deine Brücke
-
Thread
Port als Ausgang gesetzt geht direkt auf High. Wieso?
Hallo Leute, ich brauche Hilfe beim Verstehen dieses Stück Codes. Wieso wird das der PD7 auf High gesetzt nachdem ich ihn als Ausgang gesetzt habe. Sollte er nicht Low bleiben bis ich ihn entsprechend manipuliere? PD4 & PD5 bleiben nach dem setzen ja auch low. [c] int main(void){ //Aus- & Eingänge definieren DDRD |= (1<<DDD4)|(1<<DDD5)|(1<<DDD7);//Als Ausgang setzen. LED uses OC1A oc1b oc2 DDRC &= ~((1<<DDC0)|(1<<DDC1));// als eingang setzen PORTC|= (1<<PC0)|(1<<PC1);//pull up widerstand einschalten DDRD &= ~(1<<DDD2);// als eingang setzen PORTD |= (1<<PD2);/
-
Thread
[AVR] Controller reagiert auf falsche Zahl.
PORTC &= ~(1<<PC0);; //reset trigger channel } return 0; } [/c]
PORTB |= (1<<PB1); //reset if(dat==123) { //trigger condition HIER IST PROBLEM PORTC |= (1<<PC0); //trigger pulse PORTB |= (1<<PB6); //light LED } else { PORTB &= ~(1<<PB6); //darken } } PORTC &= ~(1<<PC0); //reset trigger channel
-
Thread
atmega8-Timer1 zu langsam
Ohhhhhhhhhh, mist! Ja klar, gehts. Danke Olivier!!! Aber irgendwie ist es noch recht ungenau. Innerhalb von 20 Minuten läuft meine Uhr schon 10sec nach. Da ich ein Quarz benutze und da (8Mhz/(64*125)) ganzzahlig teilt müsste es
. Hmm, gibt es beim AVR nicht, also entweder CTC Mode oder die doppelte Quarzfrequenz. Zur Not geht auch Prescaler 1024 und manuelles Nachladen des Timers in der ISR wie zu seeligen 8051 Zeiten. Wenn kein anderer Interrupt läuft geht das sicher. Oder man nimmt einfach Timer1 im CTC Mode, damit
-
Thread
PIC 18F2550 und PS2 Tastaur
252FEB-DIOS%2523ASS.pdf;SID=15ygyVbawQAQ8AADrHCGwc6f03d58159cb03456c6585c619d2d61)... ich hoffe der Link geht Vielen Dank im Vorraus Ik4ru5
du auch nur annähernd getestet haben könntest. Und ob der das mag weiß ich nicht: CLRF PORTC ; alle Pins von PORTC -> Ausg�nge CLRF TRISC ; PORTC komplett l�schen #DEFINE ps2_data PORTA,1 ; PS/2 Datenleitung #DEFINE ps2_clock PORTA,0 ; PS/2 Clockleitung
-
Thread
Encoder Tutorial
PIND & 1<<PD2) #define PHASE_B (PIND & 1<<PD3) #define LEDS_DDR DDRC #define LEDS PORTC // LEDs against VCC volatile int8_t enc_delta; // -128 ... 127 static int8_t last; void encode_init( void ) { int8_t new; new = 0; if( PHASE_A ) new = 3;
zur Funktion und Verdrahtung. also, wenn das ganze funktioniert wird der der Zählwert Binär an PORTC ausgegeben. dh. je nach Wert müssten die LEDS von PC0-PC7 leuchten ? ich habe an PORTC Die ANODE (+) und an GND eine gemeinsame Kathode angeschlossen. // LEDs against VCC richtig von dem Encoder
-
Thread
ADC Programm
ADC_free_running(uint8_t channel) { DDRC = 0x00; //PC0 als Eingang definieren PORTC = 0x00; //Pullup an PORTC aus ADCSRA = ( (1<<ADFR) | (1<<ADPS2) | (1<<ADPS1) |(1<<ADIE) ); ADMUX = (1<<REFS0) | channel; ADCSRA |=( (1<<ADEN) | (1<<
du das volatile weg, bevor das ganze an itoa geht. Aber Achtung: cast's sind Waffen! Im Endeffekt überschreibst du damit die Typprüfung des Compilers und stellst ihn ruhig. Manchmal muss man casten um Warnungen des Compilers wegzukriegen allerdings
-
Thread
wie kann ich Flanken detektieren
if ((temp & i) ^ (PINB & i)) //wenn Unterschied { if(PINB & i) //wenn H-Input PORTC |= i; //dann H-Output else PORTC &= ~i; //L-Output } } } } return 0; }
Interrupt) im Hauptprogramm im Polling-Verfahren abgefragt werden, damit kein Interrupt-Ereignis verloren geht. Das nur als Idee...
-
Thread
Initialisierung LCD EA DOG-M 162 3,3V 8 Bit
Gibt ein Paar Display dass die 4 bit modus magen gar nicht (ich habe ein 2x20, est ist langsam und geht nur im 8 bit mode). Im Datenblatt sagt das Reset kann nach VDD fixirt sein, und dann Interes POR geht. So muss gehen, und 2 Zeihle mode aktiviern. Was is das für Sprak????????
das Umschalten auf Lesen zu sparen. Die Performance ist bei mir momentan nicht sehr kritisch, daher geht's zur Not mal so.
-
Thread
isr timer 0 ov mit atmel studio 6
. also einfach: PORTC |= (1<<PC7); // Testpin an ausgeben GV_NMRA_OV++; // Erhöhe Zeitwert (Overflow) um 1 schreiben.
scheiße es geht danke für eure schnelle hilfe lg doro
-
Thread
LCD nicht nur für einen Port in C
LCD_PORT_4 PORTD #define LCD_DDR_4 DDRD #define LCD_D4 PD1 #define LCD_PORT_5 PORTC #define LCD_DDR_5 DDRC #define LCD_D5 PC1 #define LCD_PORT_6 PORTC #define LCD_DDR_6 DDRC #define LCD_D6 PC2 #define LCD_PORT_7 PORTC #define LCD_DDR_7 DDRC
machen müssen win reinschiften der temp in die portD adresse nach dem motto PortD.0=temp1.0 geht nicht?
-
Thread
HC-SR04 Ultraschallsensor + 7-Segment Anzeigen Problem mit Ausgabe wenn kein Objekt detektiert wird
Um welchen µC geht es hier eigentlich (oder habe ich 'was übersehen)?
PORTA = segment7[messwert/10]; //10er, LED-Segment mitte messwert = messwert % 10; // 0 .. 9 PORTC = segment7[messwert]; //1er, LED-Segment rechts [/c]
-
Thread
KS0108 GLCD Routinen
Sagt mal Leute, wo hänge ich denn DB0 - DB7 ran, an PORTB oder PORTC? Grüße Marco
putchar verwendet wird. dürfte eigentlich kein problem sein sonst funktioniert ja auch alles -text geht -linie geht -kreis geht -recheck geht -invert geht ........ bei euch geht das ja auch, bitte brauche hilfe! danke
-
Thread
Funktionsaufruf aus naked-Routine
einer "naked"-Routine einen Funktionsaufruf zu starten? [code]ISR( PCINT2_vect, ISR_NAKED ){ PORTC = GPIOR1; isr_more_logic(); reti(); }[/code]
Schon das PORTC = GPIOR1 ist nicht "sicher", weil das nicht ohne Zuhilfenahme eines Registers funktioniert, welches wegen des naked ja nicht gesichert und wiederhergestellt wird.
-
Thread
LED an AVR ATmega16 bleibt dunkel
1) /* loop forever */ { _delay_ms(1000); /* wait a second */ PORTC = 0xff; /* turn all output pins on */ _delay_ms(1000); /* wait again a second */ PORTC = 0x00; /* turn all output pins off */ } return 0; /* never achieved
Das stimmt, portC läuft über aVCC, den solltest du beschalten
-
Thread
LED zum Blinken bringen
Besten hinbekomme? Die Funktionen sehen wie folgt aus: void kurz() { // turn on LED PORTC |= (1<<PC4); delay_ms(35); // turn off LED PORTC &= ~(1<<PC4); delay_ms(400); } void lang() { // turn on LED PORTC |= (1<<PC4); delay_ms(700); // turn
umgestellt. Nun ist das Ergebnis besser. Jetzt kann ich zwischen lang und kurz unterscheiden. Jetzt gehts ans verfeinern. Danke für deine Hilfe.
-
Thread
LCD und BASCOM
also du musst noch die pins configurieren so z.B 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 cls LCD "hello WOrld" und du musst dem programm noch sagen wo das lcd dranhängt in der configuration
sorry... geht immer noch nicht... ich bin am verzweifeln :-( kann es was mit dem chipsatz zu tun haben? ... KS0066 , HD44100 '-------------------------------------------------------------- ' lcd_sisy.bas '
-
Thread
Lärm erkennen
~(1<<ADEN); // ADC deaktivieren (2) } int main() { if ( adcval > adcvalmax){ PORTC = 0xFF; } // wenn threshold überschritten wird PORTC auf high schalten } [/c] Mfg, Peter
>int main() { > if ( adcval > adcvalmax){ PORTC = 0xFF; } // wenn threshold überschritten >wird PORTC auf high schalten >} Und immer wieder den Reset Knopf drücken ;)
-
Thread
LCD und Makefile Problem
cyblord ---- schrieb im Beitrag #3359195: > Doch die Portzuordnungen. Ja aber nur ob PortD oder Portc .... Diese Einstellung habe ich so belassen mir geht es eher um diese Aussage: // Anpassungen im makefile: // ATMega8 => MCU=atmega8 im makefile einstellen // lcd-routines.c in SRC =
---- schrieb im Beitrag #3359195: >> Doch die Portzuordnungen. > > Ja aber nur ob PortD oder Portc .... > Diese Einstellung habe ich so belassen > > mir geht es eher um diese Aussage: > > // Anpassungen im makefile: > // ATMega8 => MCU=atmega8 im makefile einstellen > // lcd-routines.c
-
Thread
ADC zieht 80mA
den ADC Eingang. Es verhalten sich alle Eingänge auf PORTC gleich und auch bei einem aderen Atmega8 habe ich gleiches Verhalten. Ist das normal? Laut DB sollte es doch deutlich weniger sein oder? Außerdem schwankt der ADC Wert um gut +-10! Danke für eure
Sicher, dass Portc = DAC ist?? warm machst du: PORTC=0x00; DDRC=0x00;?? DDRC=0x00; ist doch gleich als Eingang.. aber dass der 8ßmA Zieht kann ich mir nicht vorstellen, die eingaennge sind im allgemienem bei CMOS
-
Thread
Schieberegister 74HC595 ansteuern
direkt hinbekommen habe, habe ich mal diesen Code testweise ausprobiert: ldi temp, 0b00000000 out PORTC, temp inc temp out PORTC, temp inc temp out PORTC, temp . . 12 mal noch hoch 10 mal noch runter . . dec temp out PORTC, temp dec temp out PORTC, temp dec
..... reti aktuell sind es 258 Takte die diese UP benötigt. Bei 8 MHz sind dies 0,03ms. Geht das noch schneller? (Natürlich außer SPI Interface) Wenn noch jemand vorschläge hat bitte posten...
-
Thread
Schon wieder ein Timerproblem.
Christian T. schrieb im Beitrag #4394517: > cli(); > PORTC ^= ((1<<5)|(1<<4)|(1<<3)); > millis=0; > sei(); cli und sei haben in der Interruptroutine nichts verloren, das wird automatisch gemacht
ein ganzer Tag Probieren? .... Wer setzt denn sowas auf default 1.... Vielen vielen Dank. Schon geht alles!