-
Thread
Slave Adresse auf einem LCD anzeigen
DIP Schalter eine Adresse am Slave von 0-255 einstellbar sein. Diese DIP Schalter benutze ich am PORTC des AVR. Mein Problem ist das ich gerne die Adresse die ich als DIP Schalter einstelle als Dezimalzahl auf einem LCD anzeigen möchte. Leider kann ich ja nicht einfach das Byte vom PORTC auf das
hi schau dir mal die ACSII Tabelle an in temp1, PORTC rcall convert ;2 Stellige Zahl teilen -> temp2 (10), Temp3 (1) ldi temp, 0b00110000 mov temp1, temp3 or temp1, temp rcall lcd_data ;temp wird ausgegeben mov temp1, temp2
-
Thread
Resetleitung von einem Mikrocontroller
Ich habe am FPGA (virtex2) einen Atmega angeschlossen, von dem eine Leitung(reset) zum FPGA geht. Diese setze ich beim power ab, kurzzeitig auf high und dann wieder low. Die Input-Leitung am FPGA ist LVTTL und hat im ucf file noch einen Pulldown Widerstand bekommen. Komischerweise wird mein FPGA
es, hab mir alle C Dateien genau angeguckt, Reset kommt dabei nicht vor und anderen PINS auf dem PortC werden per Oder-Verknüpfung geändert, dass RESET dabei so bleibt, wie nach dem Aufruf der Reset-Funktion.
-
Thread
Fuse Einstellung spinnt, Programmieren scheitert!
Und wenn Du dann der STK geht, dann mach' Dir mal Gedanken wie man DDRx, PINx und PORTx verwendet. Da ist nämlich viel Unsinn in Deinem Programm.
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
Mit Watchdogreset zum Bootloader springen
value = pgm_read_byte(&font[data[digit]]); //Alle Segmente auschalten PORTD |= PD2_7; PORTC |= 1 << PC3; //Backplane wechseln PORTB &= ~PB0_1; PORTB |= digit2; //Segmente setzen PORTD &= (~(value & 0b00111111)) << 2; PORTC &= (~(value & 0b01000000)) >> 3; }
denk einfach mal ein bisschen nach, du findest genügend szenarien, mit denen solches gemurkse schief geht.
-
Thread
Drehimpugeber am Atmega8 mit FSM
= 0x00; //Auf Eingang setzten (B) DDRC = 0xFF; //Auf Ausgang setzten (C) //PORTC = 0xFF; //Pull ups aktivieren //Bei 0xFF ist Pull up aktiviert //Bei 0x00 ist Pull up deaktiviert int tempA;//= 0x00; int tempB;//= 0x00; int tempC;//= 0x00;
Interrupts aktivieren sei(); lcd_init(); int zustand = 0; //Aktueller Zustand PORTC = 0xFF; while(1) { tempA = PIND & 1; //0b0000000X tempB = PIND & 1<<1; //0b000000X0 tempC = PIND & 1<<2; //0b00000X00 if(iDreh == 23) { iZahl++;
-
Thread
myAVR mk2 mit nur einem Taster bedienen - assembler
PORTB,r18 in r19,PINC sbrs r19,5 rjmp Taster rjmp mainloop Taster: sbi PORTC,5 Taster1: ldi r18,0b01011011 out PORTB,r18 in r20,PINC sbrs r20,5 rjmp Auswahl rjmp Taster1 Auswahl: ldi r18,0b00111111 ... Das problem ist derzeit
ldi r16,0x00 ldi r17,0xFF out DDRB,r17 out DDRD,r17 out DDRC,r16 out PORTC,r17 mainloop: ldi r18,0b00000110 out PORTB,r18 in r19,PINC sbrs r19,5 rjmp Taster rjmp mainloop Taster: cbi PORTC,5 Taster1: ldi r18,0b01011011
-
Thread
Problem mit DS1307
----- I²C Einsatellungen ---------- Config Twi = 100000 'i2c Frequenz einstellen Config Sda = Portc.4 'i2c Port SDA am AVR Config Scl = Portc.5 'i2c Port SCL am AVR '---------- LCD Einstellungen ---------- Config
Sekunden eine 80 steht, dann stimmt was mit deinem stellen nicht. Ansonsten weis ich auch nicht, so geht es bei mir auf jedenfall.
-
Thread
Anfängerfrage, wie wird ein Bit gesetzt ?
solange ich auf einen Taster drücke. dieses Programm funktioniert, aber sobald ich den Befehl PORTC = 0x01; durch PORTC |= (1 << 1); ersetze tut sich nichts mehr. bool alarm = false; int main() { DDRC = 0xFF; // PC0..PC7 as output PORTC = 0x00; // all PORTC output pins
(1 << 1) ergibt 0x02!!! Musst schreiben: PORTC |= (1<<0);
-
Thread
Probleme mit dem ADC des ATmega8
näher als 8cm an dem Hindernis steht. if(adw > 82 ) // Zu nah an einem Hinderniss (8cm) { PORTC |= 0x20; } else // Weit genug entfernt { PORTC &= 0xDF; } // Ab hier beginnt die Servosteuerung, die aber nicht interessiert, da sie funktioniert^^ TCNT2 = nextreload; to++; if((to / ti)%2 == 0) { if(signal == 1) { PORTC &= 0xF7; signal = 0; nextreload = 225; } else { PORTC |= 0x08; signal = 1; nextreload = 30; } } if((to / ti)%2 == 1) { if(signal == 1) { PORTC &= 0xF7
-
Thread
Mit ADC und Poti, LEDs ansteuern
define S2 PC1 //Spalte von LED Matrix die ich ansteuern möchte #define Freigeben(x) PORTC &=~(1<<(x)) #define Sperren(x) PORTC |=(1<<(x)); PORTD = 0b00000000 #define LED(x) PORTD |=(1<<(x)); uint16_t adc() { ADCSRA = (1<<ADEN) | (1<<ADPS2) | (1<<ADPS0); ADMUX = 0;
funktioniert nicht? > wo ich dem PORTD den 10Bit Wert von der Funktion adc() übergeben will Übergeben geht in C so: PORTD = adc();
-
Thread
SHT75 Codeproblem
So haben uns jetz an den Code von sensirion gehalten mit allen zeiten usw. Es geht immernoch nix. Selbst wenn wir eine slave adresse angeben die es nicht gibt meldet er erfolgreich gesendet. Kann bitte jemand nochmal drüberschauen. Is es eigentlich egal an welche Pins man den Sensor
haben ihn jetz an den Pins PC1 und PC0 vom ATmega16. Danke void S_SDA() { DDRC |= (1<<SDA); PORTC |= (1<<SDA); } void C_SDA(){ DDRC |= (1<<SDA); PORTC &= ~(1<<SDA); } void S_SCL(){ DDRC |= (1<<SCL); PORTC |= (1<<SCL); } void C_SCL(){ DDRC |= (1<<SCL); PORTC &= ~(1<<SCL); }
-
Thread
Interrups in Assembler
, die 2 Interrups beinhaltet. INT0 und INT1. Wird der Taster 1 betätigt, soll die Grüne Led an PortC 7 mal Aufleuchten. Wird der Taster 2 betätigt, soll die Rote Led an PortB 5 mal Aufleuchten. Wenn ein Taster Betätigt wird, springt das Programm in ein Unterprogramm, welches mit CLI beginnt und
SEI ;Global Interrupt aktivieren LDI R24,0B11000000 ;)Da das SBI nicht bei 0x3B geht ersetzt also den befehl SBI 0X3B,6 OUT GICR,R24 ;)Interrupt INT0 und INT1 freigeben LDI R16,0B00001010 ;Lade den Bitbefehl der auf Seite 66 nachgeschaut wurde in R16 Fallende Flanke
-
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
Spannungsdifferenz vom Lötkolben und anderen Dingen
abfragen will. Da man die Eingänge mit PIN abfragt und die Ausgänge mit PORT schalten kann, ergibt PORTC.0 == 0 keinen Sinn richtig wäre if(PINC.0 == 0)
Ach so. Das ist natürlich ein Argument. Bei meinen PICs kann man nämlich sehr wohl if(PORTC.0 == 0) verwenden. Wieder etwas dazugelernt. Schöne Grüße, Alex
-
Thread
Knight Rider!
dir mit google ein Online Bascom Tutorial Du brauchst Unterlagen. Ideal wäre ein Buch, aber es geht auch mit Online Tutorien. Was aber nicht geht: Zu glauben man könne programmieren lernen, indem man sich in einem Forum durchfragt.
Oh okay jetzt gehts!
-
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
jedem Inkrementieren noch eine passende Verzögerungsschleife, damit es fürs Auge genügend langsam geht. Dann prüfen, ob alle LEDs an allen Ports blinken. Alles in allem vielleicht 15 Zeilen Code, die ihren Zweck erfüllen.
-
Thread
LCD ausgabe mit AVR Studio
dazu. Compilieren, linken und wenn du bei der Anpassung der lcd.h keinen Fehler gemacht hast: geht
Sowohl E als auch R/W *müssen* bei der Fleury Lib angeschlossen werden! R/W einfach weglassen, geht nicht. > #define LCD_PORT PORTC /**< port for the LCD lines */ Welchen Prozessor hast du? Falls es ein Mega16 oder Mega32 ist: Das JTAG Interface ist abgeschaltet? Per Default
-
Thread
Interrupt/Timer Problem: Nur einmalige Ausführung
switch_led(LED_DISPLAY,1); wait_ms(10); switch_led(LED_DISPLAY,0); } int main(){ // PORTC for LEDs PORTC = 0xFF; DDRC = 0xFF; // Configure a timer // Clock: 16000000HZ // Prescaler: 1024=>15625 is the clock, CTC Mode TCCR1B = (1<<CS12) | (1<<CS10) | (1<<WGM12); OCR1B
Welcher Controller? (Wegen PORTC -> JTAG-Fuse?)
-
Thread
VT100 ESC Sequenzen + LCD
lcd_data(0x44); // D wird der kursor nicht nach links verschoben, ich bekomme einfach [D. Es geht um ein KS0070B kompatibles LCD mit Atmega32 angesteurt. Danke im vorraus
wrote: > Wenn ich die 4 Datenbits DB4 ... DB7 vom LCD NACHEINANDER an die Pins > PC4... > PC7 am PORTC verbinde, wird das funktionnieren oder ? Ich kenne die avrlib-Implementierung nicht, würde aber erwarten, dass das dann geht.
-
Thread
SPI - uC "empfängt" nur ein bestimmtes Byte
Test-Byte senden und > PORTB |= (1<<PB4); //SS-Leitung auf 'high', Aha, danke! Jetzt geht es.
wie soll es gehen : char SPI_SlaveReceive(void)....Aha, danke! Jetzt geht es. mfg
-
Thread
timer/counter-verständnis?
ISR(TIMER1_COMPA_vect) { t--; if(t==5) { counter= 0; PORTC^= (1<<PC5); } }
leuchten lassen und habe > als Muster diese 5sekunden gewählt. Nun warte ich 5sekuden und dann > geht die LED erst an aber die LED soll gleich an gehen und 5 Sekunden > lang leuchten :( Warum schaltest du sie dann nicht einfach gleich ein? Also vor deiner Endlosschleife ein [C] PORTC |
-
Thread
RFM12 empfängt nur einmal und stürzt dann ab
Spi_sdo = 0 Schleifencount = Schleifencount + 1 If Schleifencount = 0 Then Toggle Portc.3 ' blaue Kontroll LED End If If Count >= Maxchar Then Countl = 0 County = 0 For Count = 1 To Maxchar Print Bin(rfdata
count) = 0 Next Count If Countl >= 3 And County >= 3 Then Print "PORTD.7 && PORTC.5 && PORTC.4" Portd.7 = 1 Portc.5 = 1 Wait 1 Portc.5 = 0 Waitms 500 Portc.4 = 1 Wait 1 Portc.4 = 0 Waitms
-
Thread
PIC 16F628 LCD-Display
input movlw B'11110000' iorwf TRISB, f bcf STATUS, RP0 BusyLoop bcf PORTC, LcdRs bsf PORTC, LcdRw ; Lesen bsf PORTC, LcdE nop movf PORTD, w movwf LcdStatus bcf PORTC, LcdE nop bsf PORTC, LcdE ; Enable nop bcf PORTC, LcdE btfsc LcdStatus
LcdRs ; Daten bsf PORTC, LcdE nop bcf PORTC, LcdE ; Disable LcdBus bcf PORTC, LcdRs ; bcf PORTA, 2 ; Test LED 2 on return end [/c]
-
Thread
unverständliche Zeile in C-Code
erstmal danke, ich bekomme also eine 1, wenn ich an den vierten PIN von PORTc 5v anlege?
Das Dingen schimpft sich *Ternärer Operator*. Geht so: ( (Bedingung) ? (Wahr-Wert) : (Falsch-Wert) )
-
Thread
Atmega8A - PWM-Einstellung über Spannungsteiler mit AD Wandlung
// PORTD2 als Ausgang für 5V an Spannungsteiler DDRC |= (1<<PORTC0); // PORTC als Eingang von Poti ADCSRA |= (1<<ADEN) | (1<<ADIE) | (1<<ADFRA) | (0<<ADPS2) | (0<<ADPS1) | (1<<ADPS0); // AD-Wandlung aktivieren + Interruptfreigabe
PortB2 als Ausgänge // festlegen. DDRC |= (0<<PORTC0); // PORTC0 als AD-Eingang ADCSRA |= (1<<ADEN) | (1<<ADSC); // AD-Wandlung aktivieren } int main() { InitPWM();
-
Thread
ATmega128 Problem
Initialsierung // Interupt DDRC.4 = 1; DDRC.5 = 1; warte(); while(1) { PORTC.4=1; PORTC.5=0; //putchar('2'); for (x=0;x<25000;x++) { } } PORTC.5=1; PORTC.4=0; for (x=0;x<25000;x++) { } } }
Der ATmega128 hängt trotzdem in der Funktion. Kein Signal an den Ports. Sobald warte(); raus ist geht es(ohne putchar). Hab auch die nop's probiert. Habe auch mal die putchar-Anweisung vor die while-Schleife gesetzt. Er wiederholt ständig die 2, obwohl doch nur eine erscheinen dürfte. An den Ports
-
Thread
Feuchtesensor AM2302/DHT22 avr-gcc
Moin, jetzt geht er wieder. Ich hatte ein technisches Problem mit der Website. Gruß Kalle
Markus E. schrieb im Beitrag #4264298: > geht es nur mir so oder kommt unter dem Link nichts mehr auf seiner > Homepage? > > http://publicgit.pgollor.de/avr/am2302 Doch der Link geht noch, aber du wirst im Browser nichts sehen, da es ein
-
Thread
Dumme Frage zum "C" mit AVR's
Christian J. schrieb im Beitrag #4096031: > Es geht also nicht :-( Doch: https://www.mikrocontroller.net/topic/364313#4095947 Du musst nur noch eine [c]#define LED5 BF_PORTB.portb5 // Oder welcher Pin auch immer[/c] machen und kannst dann in deinem
Makros à la: [c]#define POWER_LED_PORT PORTB #define POWER_LED_PIN 5 #define STATUS_LED_PORT PORTC #define STATUS_LED_PIN 1[/c]
-
Thread
Seriell Daten Empfangen
Line); if (get == 1){ //+++++++++++++++++LED TEST+++++++++++++++++// PORTC |= (1<<PC0); // Ausgang auf 1 _delay_ms(500); PORTC |= (1<<PC1); _delay_ms(500); PORTC |= (1<<PC2); _delay_ms(500); PORTC &= ~(1<<PC0); // Ausgang auf 0 _delay_ms(500); PORTC &= ~(1<<PC1); _delay_ms(500); PORTC &= ~(1<<PC2); _delay_ms(500); //+++++++++++++++++LED TEST+++++++++++++++++// } } { } }
-
Thread
Trivialprogramm für PIC16F1936 - Was mache ich falsch?
LATA banksel TRISA clrf TRISA Genau so würde ich es erst mal machen, nur mit PORTC, LATC und TRISC Und dann, falls COMF weiter nicht geht, dann halt weiter mit banksel LATC movlw 0x00 movwf LATC movlw 0xff movwf LATC
Jetzt werde ich wohl doch 'mal versuchen, den Microchip-Assembler unter wine zu verwenden. Angeblich geht das ja.
-
Thread
Mehrere Signale über eine Leitung
wenn du die mit einem genügend schnellen takt (mindestens wortbreite/bedienfrequenz * 2) betreibst, geht das über deine leitungen.
>es geht auch analog: bei 60m und den Störungen...
-
Thread
SW-PWM: Kurzer heller Flash beim Uebergang von 0 auf 1
Reihe Compiler, die alle Unterschiede haben und nur bedingt bis gar nicht portierbar sind), dann geht die Interrupt-Freigabe mit #asm("sei") und das globale Sperren mit #asm("cli")
overflow(void) //bei Überlauf von T3 Ausgang C.4 = high { if ( <einschaltbedingung> ) PORTC.4=1; } Gruß, Feadi
-
Thread
Probleme auf ATmega88PA
angeschlossen, die Spalten sind von links nach rechts an PB0 - PB5 PORTB ist für GND zuständig, PORTC für VCC. Das heißt, wenn ich LED 14 einschalten will: PORTC = 0x00; // Alles aus (in Sperrrichtung) PORTB = 0xFF; PORTC |= (1<<PC3); PORTB &= ~(1<<PB3); So, nun lasse ich das ganze über einen
wieder auf 0 setzen! ISR (TIMER0_OVF_vect) { PORTB = 0xFF; // Alles aus, Dioden in Sperrichtung PORTC = 0x00; PORTB &= ~(1<<(currentLed / 4)); // Hier sieht man nochmal, was ich mit dem Umrechnen meinte PORTC |= (1<<(5 - (currentLed % 4))); do { currentLed++; } while (~LED_MASK & (1<<currentLed
-
Thread
8-Bit Software PWM für mehr als 8 Kanäle
ptr_PORTA_main[i] = ~ptr_PORTA_main[i]; ptr_PORTB_main[i] = ~ptr_PORTB_main[i]; ptr_PORTC_main[i] = ~ptr_PORTC_main[i]; ptr_PORTD_main[i] = ~ptr_PORTD_main[i]; ptr_PORTE_main[i] = ~ptr_PORTE_main[i]; ptr_PORTF_main[i] = ~ptr_PORTF_main[i]; ptr_PORTG_main[i] = ~ptr_PORTG_main
pwm_cycle++; PORTA &= ~ptr_PORTA_isr[pwm_cycle]; PORTB &= ~ptr_PORTB_isr[pwm_cycle]; PORTC &= ~ptr_PORTC_isr[pwm_cycle]; PORTD &= ~ptr_PORTD_isr[pwm_cycle]; PORTE &= ~ptr_PORTE_isr[pwm_cycle]; PORTF &= ~ptr_PORTF_isr[pwm_cycle]; PORTG &= ~ptr_PORTG_isr[pwm_cycle]; PORTH &=
-
Thread
UART Kommunikationsproblem
PORTC &= receive; delay_ms(1000); PORTC |= 0xff; delay_ms(1000); USART_Transmit(receive); } } Gruß Dominik
Kann mir den keiner weiterhelfen .. das empfangen auf uC seite geht aber das senden zum PC geht nicht richtig...
-
Thread
Timer-Interrupt und Delay
DoStep2 CPI step, 0x03 BREQ DoStep3 CPI step, 0x04 BREQ DoStep4 DoStep1: OUT PORTC, step RJMP Exit_TIMER0_Interrupt DoStep2: OUT PORTC, step RJMP Exit_TIMER0_Interrupt DoStep3: OUT PORTC, step OUT OCR1AH, DelayHigh ;Delaytime OUT OCR1AL, DelayLow RJMP Exit_TIMER0_Interrupt DoStep4: OUT PORTC, step OUT OCR1AH, NormalHigh ;Normaltime OUT OCR1AL, NormalLow LDI step, 0x00 RJMP Exit_TIMER0_Interrupt Exit_TIMER0_Interrupt: RETI /// Habe das auf das Wesentliche gekürzt
-
Thread
Druckschalter Kompressorsteuerung für Weller Entlötstation WDD81V mit MPX5700 Drucksensor 0-7bar
ID3 AN PORTB0 ID4 AN PORTB7 ID5 AN PORTD4 ID6 AN PORTD3 ID7 AN PORTD2 MODE AN PORTB6 WRITE AN PORTC5 MPX5700 Sensor1 AN PORTC0 Sensor2 AN PORTC1 Referenz 5V Sensor nach Schaltbild aus Datenbatt Taster Taste Rot "up" über Diode AN PORTD5 (Diode 1N4148 nach PORTPIN) Taste Gelb "Mode
PORTPIN) Taste Schw."View" über Diode AN PORTB0 (Diode 1N4148 nach PORTPIN) Gemeinsame Seite AN PORTC4 Relais Relais1 AN PORTB2 Relais2 AN PORTB1
-
Thread
Atmega 1284 Pin-Change Interrupt, funktioniert nicht
--> Ausgang PORTA |= 0x00; //All Outputs PORTB |= 0x00; //All outputs/undefined PORTC |= 0xff; //SW 0..5 with Pull-Up PORTD |= 0x40; //SW 6 with Pull-Up SW_Init(); //Initialize Taster sei(); //Global IRQ-Enable //SW_Init(); //Initialize Taster }
--> Ausgang PORTA |= 0x00; //All Outputs PORTB |= 0x00; //All outputs/undefined PORTC |= 0xff; //SW 0..5 with Pull-Up // c-->f PORTD |= 0x40; //SW 6 with Pull-Up SW_Init(); //Initialize Taster sei(); //Global IRQ-Enable } void SW_Init() { PCICR = 0x0c
-
Thread
PIC + Encoder-abfrage funktioniert nicht richtig
in der GLEICHEN 256-Bytes-Page stehen. Dann geht der goto auch nach $0160 und nocht nach $0060. Gut, nächstes Problem: Ich finde es überhaupt nicht lange, wenn einige ms gewartet wird, bis der Encoder nicht mehr prellt. Man sollte mal im Datenblatt nachsehen, wie gross die max. Prelldauer den ist. Das geht manchmal schom bis 200ms. Also, wenn das keine 'Hochgeschwindigkeitsanwendung' werden soll, was ja alleine schon wegen dem Display nicht geht, dann nimm die Zeit einfach als gegeben hin. Gruß
-
Thread
[AVR] Atmega8 lässt sich nicht beschreiben
Led Toggle */ void LedSet(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; } } int
ich hingegen " Input hex file" anwähle und das erzeugte "hex-file " lade,damit dann den chip brenne geht das alles problemlos. Betriebssystem ist Win7 32bit mfg
-
Thread
RS232 unter C auf Atmega8 konfiguriren
PortB alle Bits ON"); uartPutString("\n pb = PortB alle Bits OFF"); uartPutString("\n PC = PortC alle Bits ON"); uartPutString("\n pc = PortC alle Bits OFF"); uartPutString("\n PD = PortD alle Bits ON"); uartPutString("\n Bx = PortB Bit X ON (X = 0..5)"); uartPutString("\n bx = PortB Bit X OFF (X = 0..5)"); uartPutString("\n Cx = PortC Bit X ON (X = 0..5)"); uartPutString("\n cx = PortC Bit X OFF (X = 0..5)"); uartPutString("\n Dx = PortD Bit X ON (X = 2..7)"); uartPutString("\n dx = PortD Bit X OFF (X = 2..7)"); uartPutString
-
Thread
LCD 162C mit ATMega16 ansteuern.
wunderbar. Nun brauche ich aber für eine Anwendung einen ATMega16( int. 1 MHz ), bei dem ich das LCD an PORTC statt PORTD betreiben möchte. Geht nicht anders. Ich habe also im Code alles betreffende auf PORTC umbenannt, inkl. der DDRC. Im Programm ist auch der µC umgestellt. Wenn ich dann das Programm auf
Tobias P. schrieb: > für eine Anwendung einen ATMega16( int. 1 MHz ), bei dem ich das LCD an > PORTC statt PORTD betreiben möchte. Mega16 und PORTC JTAG Fuse abgeschaltet?
-
Thread
Spiegeln eines Bits
Das ist es Ich kann ja auch rechtsschiften.... man bin ich blöd... ich mach jetzt also nicht PORTC = (0x01<<i); sondern PORTC = (0x80>>i); ich danke euch :)
Nach links schieben geht auch mit Multiplikation mit 2. Das kann auf AVRs mit Hardware-Multiplizierer ab ner gewissen Grenze schneller sein als mehrmals shiften.
-
Thread
Suche kleines Testprogramm für KS0108 für ATmega8
das zwar alleine schaffen an zu steuern aber trotzdem vorher wissen ob es wirklich funktioniert <- Geht einfach besser wenn man weiß das es "irgendwie" geht) Was angezeigt wird ist egal. Ebenso ist egal ob .asm oder .hex Super währe auch die im Programm verwendete Verkabelung. Vielen Dank
Es wird vorausgesetzt, dass die Anzeige einen HD44780 oder Der KS0108 ist kein Textdisplay. So geht das nicht.
-
Thread
Neuer STK500 und ATmega8
danke für die hilfe, aber es geht immernoch nicht. LOW=0xC4 HIGH=0x99 Bezugsquelle: Engbedded AVR® Fuse Calculator aus dem Netz. >die avr's haben von haus aus ne sehr langsame frequenz eingestellt, und >die programmierfrequenz
Und wenn du die Taster an PortC ansteckst, dann tut sich mit den Tasten 0 und 1 auch was.
-
Thread
Fehler bei CONFIG PIC 18F2420
Am einfachsten geht es so: https://microchipdeveloper.com/mplabx:view-and-set-configuration-bits
CCP2MX = PORTBE ich hab doch gesagt, alter mist ... wann lernst du endlich LESEN?! CCP2MX = PORTC/PORTB
-
Thread
PWM ADC BASCOM
Ja danke gut zu wissen geht das auch irgendwie mit den Mux Registern einfacher
µC-Clocks Ergibt +35% Auslastung. Basti schrieb im Beitrag #2461634: > Ja danke gut zu wissen geht das auch irgendwie mit den Mux Registern > einfacher Die Kenntnis darum ist auch in C weiterverwendbar, nur die Syntax ist da etwas anders.
-
Thread
SPI zwischen zwei ATMega8
Das scheint bei dir Methode zu haben [c] else if (spi_data == 0x00) { PORTC= (0<<PC0); [/c]
Miau, /Slave Select/ schon, aber nicht vernünftig. Und da gibt's noch so eine dubiose Null: > PORTC= (0<<PC0);
-
Thread
ATA Floppy mit ATmega1284P ansteuern
Hallo, was soll das ... [c] PORTC= (PORTC & clr_bit) | stat_command; [/c] machen - keine Definition zu finden. Musst du evl. eine bestimmete Länge für den Resetzyklus einhalten?! Sascha
~0b1111100 Damit ist clr_bit= 0b0000011 auf 8Bit erweitert also 0b00000011 ! Beim verunden mit PortC wird PC7, alias Reset, wieder Low und damit aktiv. Sascha