-
Thread
Schalter einlesen Entprellen notwendig (kein Taster)
entprellen. Erfasst du die Tasten schneller UND zählst Tastendrücke, wie oft sie also von 1 auf 0 geht, dann musst du entprellen. Zählst du die Tastendrücke (Wechsel von 1 auf 0) gar nicht, brauchst du auch bei schnellerer Erfassung nicht zu etprellen.
, geht am entsprechenden gegenüber an Port C (PD2 --> PC0, PD3 --> PC1, etc.) die LED an. Somit liest die Funktion get_key_state() den Wert der angegeben key_mask ein und gibt, wenn gibt die key_mask wieder
-
Thread
AVR asm jmp problem
and out ldi r16, 0b000010 STORE DDRB, r16 ;configure pullups in C ldi r16, 0b001111 STORE PORTC, r16 ;led off ldi r16, 0x00 STORE PORTD, r16 loop: sbic 0x06, 0 jmp loop ldi r16, 0b011111 STORE PORTC, r16 end: jmp end [/avrasm] Der Taster ist dabei
der Reset-Leitung hinzufügen oder den internen für den Pin zuschalten indem du beim Schreiben auf PORTC 8 bit verwendest und dabei bit 6 auf 1 setzt. Also: [avrasm]ldi r16, 0b01------ ; '-' meint die obigen 6-bit-Werte STORE PORTC, r16[/avrasm] Mark
-
Thread
SPI funktioniert nicht
Sendepuffer steht jetzt empfangenes Byte return SPDR; } ISR (SIG_SPI) { // PORTC ^= ( 1 << PC1 ); if (status == 1){ PORTC &=~(1<<PC1); status = 0; } else { PORTC |=(1<<PC1); status = 1; } //data = SPDR; data = receive(); if (data == '1'){ PORTC |= (1 << PC0) ;} //LEDs an // if (data == '0') PORTC &= ~(1 << PC0) ; //LEDs aus else { PORTC &= ~(1 << PC0) ;} } void slave_init (void) { // DDRB |= _BV(PB4);
-
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
Problem beim Konfigurieren von EUSART PIC18 Assembler
Das Programm Funktioniert bis jetzt wie folgt. Wenn ich eine Taste auf der Tastatur drücke, dann geht die LED an. Drücke ich nochmal drauf passiert nichts. Die LED bleibt jetzt immer an. Hat jemand eine Idee, was da mit dem QT nicht stimmt? Mit freundlichen Grüßen David
ANSELB; Set all pins to digital output MOVLW 0x00 MOVWF ANSELB ; Configuration of PORTC CLRF PORTC ; Clear PORTC MOVLW 0x00 MOVWF PORTC CLRF TRISC ; Set all pins to output MOVLW 0xF0 MOVWF TRISC CLRF ANSELC; Set all pins to digital output MOVLW 0x30
-
Thread
bit_is_clear bit_is_set
aus } } }[/c] ich wollte halt verstehen, warum bei clear (lösche) etwas auf AN geht und bei set (setze) auf aus. ich habe da ein kleines verständnisproblem.
mit der avr/io.h included > wird. kenne ich... aber es war ja nicht klar, dass es hier um AVRs geht. ist für schulen auch eher ungewöhnlich.
-
Thread
PIC18F timer zählt nicht
Wert des Registers TMR0H wird also geteilt und den Variablen von C-F zugeordnet, welche ich dann an PortC ausgeben kann, weil ich alle Werte in einem Array als Zahl für das 7-Segment zugeordnet habe. Wieso zählt der Timer nicht? Mfg Patrick
also "PORTB = SSEG[ B];", somit z.B. SSED[10]. Das Array hat aber bestimmt nur die Indize 0-9. Also geht er über den Speicherbereich hinaus und nimmt Daten, die nicht dafür gedacht sind.
-
Thread
AVR: was mit nicht benutzten Anschlüssen machen?
. Dadurch ist der Eingang definiert low, und selbst wenn der Pin mal auf Ausgang geschaltet wird, geht nichts kaputt.
maximal 0,3V von Vcc abweichen darf. Wenn man nun AVcc unbeschaltet lässt, weil man weder den ADC noch PORTC(3..0) verwenden will, ist dies nicht mehr gegeben. Was passiert dann? Gleicht der AVR selbst den Pegel aus?
-
Thread
Interupt schaltet nicht alles ab?
0b11111111; // Alle auf Ausgang DDRC = 0b00000000; // Alle auf Eingang PORTC = 0b11111111; // Alle Pullups gesetzt DDRD = 0b00000000; // Alle auf Eingang PORTD = 0b11111111; // Alle Pullups gesetzt, D2 für Interupt0 LED &= ~Stop;
stellt nicht das Gulasch auf den Herd, bleibt daneben stehen bis es kocht, schaltet den Herd aus und geht zur Waschmaschine, räumt die Wäsche ein, bleibt daneben stehen bis die Maschine fertig ist und räumt dann aus, Sondern sie macht das alles 'gleichzeitig'! Genau gleichzeitig geht natürlich nicht, aber
-
Thread
Uart Daten-Empfang
> > Versuch's mal mit: > sensNr = (inLx[0]-'0')*10 + (inLx[1]-'0'); Vielen vielen dank jetz gehts Danke mfg
ein/ausgeschaltet wird, zB in der Form (LED hängt an PortC5, diesen vorher noch auf Ausgang setzen) PORTC ^= (1 << PC5);
-
Thread
wake up Sensor klappt nicht
Danke Kristijan. Es klappt jetzt. Hab den Pin falsch abgefragt. Anstatt PORTC muss es PINC heißen. Leider ist die Performance erheblich runtergegangen im Vergleich zu meinem alten Programm ohne wake up.
Gesamtschaltung und konnte dann immer sehn wenn der Sensor aufwacht und dann eben wieder schlafen geht. Hatte dann versucht am PINC4 vom µC welcher den INT2 pin vom Sensor pollt einen Pulldown Widerstand anzuschließen um die Nachlaufzeit zu unterbinden. Dadurch wacht der Sensor nicht mehr auf.
-
Thread
HP 7470A Plotter HP-IB
mir gedacht ich setzte einen microcontroller + ULN2803 (als > bustreiber) ein . Grundsaetzlich geht das. Ich habe soetwas schonmal mit einem Microcontroller und einem PCF8574 gemacht. > muss ich da auf was achten oder brauche > ich das bei dieser konstelation nicht ? es soll nur dieser plotter
solls doch aussehen ^^) Ich dachte ich nehme einen 16f73 an portB kommen die datenleitungen und an PORTC0-2 kommen die handshake leitungen . mfg
-
Thread
avr inline assembler
t" "adc %A3, %2 ;1 cycle" "\n\t" "out %5, r17 ;cs=0;rw=0; cs und rw in PORTC;1 cycle" "\n\t" "lpm ;3 cycles" "\n\t" "out %4, __tmp_reg__ ;1 cycle" "\n\t" "out %5, r16 ;cs=1;rw=1; cs und rw in PORTC;1 cycle" "\n\t" "in r15,%6
t" "adc %A3, %2 ;1 cycle" "\n\t" "out %5, r17 ;cs=0;rw=0; cs und rw in PORTC;1 cycle" "\n\t" "lpm ;3 cycles" "\n\t" "out %4, __tmp_reg__ ;1 cycle" "\n\t" "out %5, r16 ;cs=1;rw=1; cs und rw in PORTC;1 cycle" "\n\t" "in r15,%6
-
Thread
STM32F0 TIM15 -> ADC -> DMA
15 läuft auch schon und Setze auch brav das Flag mit 10KHz Beim ADC ... naja ... das Scannen geht, auch mit dem DAM jedoch nur wenn ich ihn in Software Trigger, das Beispiel basiert auf dem CCP4 Modul vom Timer 1 den ich jedoch wegen der 4 PWM Ausgängen brauche. [c] void ADC1_CH_DMA_Config(
Recht ... das war ein kopie and Paste Fehler da seht TIM15_TRGO :) Aktueller Stand ist: Triggern geht, er scannt auch die 6 Ch. durch ... aber nur wenn ich sie von Hand auslesse ... ich muss jetzt aber los ... ich schreib das später noch mal genau. danke schon mal :)
-
Thread
I2C - warten bis Bus frei
<<TWPS0); TWBR = 0x50; /* Prepare Pins */ DDRC &= ~((1<<DD0)|(1<<DD1)); PORTC |= (1<<PC0) | (1<<PC1); // Pull-Ups extern, aber schadet auch nicht } /* Check if I2C Adress is present */ uint8_t i2c_checkAddress(uint8_t address) { uint8_t retVal = 0; // Test
127; i++) { uint8_t check = i2c_checkAddress(i<<1); ... } [/code] erzeugen, aber darum geht es mir im Moment nicht. Viele Grüße Nicolas
-
Thread
Sleep-Funktion / Power Save
out PORTB,TempU1 ldi TempU1,0x00 out DDRB,TempU1 ldi TempU1,0xff out PORTC,TempU1 ldi TempU1,0x00 out DDRC,TempU1 ldi TempU1,0xff out PORTD,TempU1 ldi TempU1,0x80 out DDRD,TempU1 ;Timer 2 ;Uhrzeit ldi tempu1,(1<<AS2)
klingt wirklich > sehr zufällig Ich hab mal per OSCCAL den internen Takt hochgeschraubt. Irgendwann geht es dann nicht mehr. Kleines Delay rein und schon läuft es wieder. Also es ist eindeutig die Zeit. mfg.
-
Thread
ATmega1284p - unerklärliche Phänomene
Lösungsansätze: Beispiel, die einen Reset auslösen: [c] int main(void) { DDRC = 0xFF; PORTC = 0xFF; while(1) { PORTC = 0xF0; _delay_ms(100); // <~ RESET PORTC = 0x0F; // wird nie erreicht _delay_ms(100); } return 0; } [/c] selbes Beispiel mit Watchdog
aus (allerdings ist die Lösung für mich nicht tragbar): [c] int main(void) { DDRC = 0xFF; PORTC = 0xFF; while(1) { PORTC = 0xF0; wdt_enable(WDTO_8S); _delay_ms(100); wdt_reset(); wdt_disable(); PORTC = 0x0F; wdt_enable(WDTO_8S); _delay_ms
-
Thread
Atmega48 ersetzen durch Attiny?
Peter Dannegger schrieb im Beitrag #2817076: > Ein ATtiny24 sollte reichen. Das geht sogar mit einem Attiny45. Aber Konrad hat ja nur 2313... mfg.
Thomas Eckmann schrieb im Beitrag #2817080: > Das geht sogar mit einem Attiny45. Da bin ich mal gespannt wie Du 9 IOs + Quarz anschließen willst. Peter
-
Thread
STK500 defekt?
Ja es handelt sich um PORTC hier habe alles auf 0xff gestellt: DDRA = 0xff; PORTA = 0xff; DDRB = 0xff; PORTB = 0xff; DDRC = 0xff; PORTC = 0xff; DDRD = 0xff; PORTD = 0xff; und es leuchtet immernoch
init_io(void) { DDRA = 0xff; PORTA = 0xff; DDRB = 0xff; PORTB = 0xff; DDRC = 0xff; PORTC = 0xff; DDRD = 0xff; PORTD = 0xff; } [/c]
-
Thread
Kleines Programm für ATMega644
mit GND verbunden, sonder offen gelassen, da Pin 4(TXD) und Pin 8(RXD) auf dem Mega8 beim USBasp geht. Ich hab nun folgendes Programm kompiliert: [avrasm] $regfile = "m644def.dat" $crystal = 8000000 $baud = 19200 $hwstack = 128 $swstack = 128 $framesize = 128 Config Portc.0 = Output Do Portc.0 = 1 Waitms 100 Portc.0 = 0 Waitms 100 Loop End [/avrasm] und die daraus erstellte hex-datei (test.hex) über [code]avrdude -c usbasp
-
Thread
AVR im eimer?
falsch" eingestellt sind? Oder wie passiert sowas? Ich nehme nicht an dass es so ist, dass man bei PORTC standardmässig nicht alle pins auf high schalten kann...
Takt wieder beleben können und konnte die einstellungen nun vornehmen. Nun klappt es auch mit PORTC besten dank für eure hilfe :)
-
Thread
Bedeutung der Warnung "suggest parentheses around assignment used as truth value [-Wparentheses]"
mode==HIGH){PORTB |= (1<<port_pin[1]);} if (mode=LOW){PORTB &= ~(1<<port_pin[1]);} break; case portc: if (mode==HIGH){PORTC |= (1<<port_pin[1]);} if (mode=LOW){PORTC &= ~(1<<port_pin[1]);} break; case portd: if (mode==HIGH){PORTD |= (1<<port_pin[1]);} if (mode=LOW){PORTD &= ~(1<<port_pin[1]);
Warum diese Umstände? Es geht viel einfacher und lesbarer mit meiner sbit.h: http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&p=835728#835728 Peter
-
Thread
LCD-Tutorial: LCD auf anderem Port funktioniert nicht
wunderbar (ATMEGA16). Ich brauche aber den PortB für die USART, also habe ich alles 1:1 auf die Pins am PortC angeklemmt: PC0-PC3 = DB4-DB7 PC4 = RS PC5 = E und im lcd-routines.h entsprechende Änderungen vorgenommen: // LCD DB4-DB7 <--> PORTD Bit PD0-PD3 #define LCD_PORT PORTC #define
Ok, spess53 war schneller und meine erste Vermutung richtig. Abschalten geht über Fusebits.
-
Thread
erste Schritte mit Assembler
] ; korrekt, aber nicht empfohlen (s. u.) IN R0, PINB-0x20 OUT PORTC-0x20, R1 [/avrasm] I/O-Register an Adressen >= 0x60 liegen außerhalb der Reichweite von IN und OUT, so dass hier immer LDS und STS verwendet werden muss. Die Befehle CBI, SBI, SBIC und SBIS
=0x03 Somit ist hier, bezogen auf das obige Beispiel (gottseidank) [avrasm] IN R0,PINB OUT PORTC, R1 [/avrasm] vollkommen korrekt. Das wird einen Assembler-Einsteiger vermutlich verwirren... Gruß Tom
-
Thread
Tastenentprellung verweigert Tasten
Problem, welches ich einfach nicht lösen kann. Es funktionieren nur zwei der 4 Tasten! Sie hängen an PortC 0-3 und funktionieren nur die Tasten die an Pin 0 und 1 hängen. Hab auch schon den Atmega16 getauscht, weil ich dachte, dass vielleicht die Pins defekt sind aber dem war nicht so. Es geht mit beiden
Hi >Sie hängen an PortC 0-3 und funktionieren nur die Tasten die an Pin 0 >und 1 hängen. JTAG abschalten. MfG Spess
-
Thread
Setfont-Befehl in Bascom funzt net
Ich möchte großen Text anzeigen also z.B. 32x32 Geht das nicht?
Sebastian schrieb im Beitrag #2791106: > Ich möchte großen Text anzeigen also z.B. 32x32Geht das nicht? Geht schon, musst du aber mit einzelnen Pixeln selber zusammenbauen.
-
Thread
RC Empfänger PWM Signal Mosfet Motorregler
Nimm einen PIC10 + Mosfet. Kleiner und einfacher geht es nicht.
will never be executed } // Interrupt subroutine timer 1 overflow ISR(TIMER1_OVF_vect) { PORTC ^= 0x01; // Toggle Pc0 PORTC ^= 0x01; // Toggle PC0 } // Interrupt subroutine timer 1 compare A match ISR(TIMER1_COMPA_vect) { PORTC ^= 0x02;
-
Thread
PIC16F886 Problem mit "BSF" Befehl
funktioniert wie ich möchte. Konkret setze ich Bit6 am PORTB über: BSF PORTB, 6 Dieser Pin geht dann auch, sowohl in der Simulation, wie auch in real einen Takt auf high und fällt dann wieder auf low zurück. Ist das normal? Das Bit müsste doch dauerhaft gesetzt sein. Recht herzlichen Dank
Gerhard schrieb im Beitrag #2787318: > Dieser Pin geht dann auch, sowohl in der Simulation, wie auch in real > einen Takt auf high und fällt dann wieder auf low zurück. BSF LATB, 6 sollte das Problem lösen Die Erklärung steht auf der Sprut-Webseite
-
Thread
Befehlszusammenfassung in C
eine ziffer und dann eine 0byte für das ende. Damit überschreibst du dir den speicher, vermutlich geht irgendetwas aus diesem grund nicht.
); DDRB = 0xff; //PORTB als Ausgang für Speaker //und LED DDRC = 0x00; //PORTC als Eingang für Taster zum //Stellen der Weckzeit PORTC = 0xff; //PullUp-Widerstände an PORTC ein lcdGoto(2,1); lcdWrite("Wecker: : "); stellen(); if ((h==hr
-
Thread
GrafikLCD am Mega16 zeigt nur Pixelkäse
ES GEHT! PullUp's an den Datenleitungen... :-)
Controlport = Portc deutet doch eindeutig auf den Port wo auch der JTAG ist. Was vermisst du?
-
Thread
Wie setzt ihr Klammern?
jeweils einen anderen Codingstyle haben. Sobald man den jeweiligen Codingstyle verinnerlicht hat, geht das umstellen auch einfacher und schneller. Wichtig ist vor allem Konsistenz innerhalb eines Projektes.
#define then { #define endif } #define else }else{ void test(int i){ if (i==1) then PORTC += 1; PORTD += 1; else PORTC -= 1; PORTD -= 1; endif } [/c]
-
Thread
mylcd.h und TG12864B-13
Command Port #define LCD_DATA_PIN PINC // Data Input Register #define LCD_DATA_PORT PORTC // Data Output Register #define LCD_DATA_DDR DDRC // Data Direction Register for Data Port // Command Port Bits #define CD 0x02 // Data/Control (RS) PinNumber #define
Hi Vielleicht verrätst du mal um welchen Controller es geht. MfG Spess
-
Thread
SNES Controller auslesen mit AVR Atmega88
/doc0856.pdf Da steht zB wie man ein einzelnes Bit einliest(BST). So wie Du es machen willst geht es, nur muss da der Rest von PORTC auch auf einen definierten Wert liegen. Dein Prinzip ist ja so: Wenn A gedrückt war solltest du zB 0b11111110 einlesen. Dann kannst du COM darauf anwenden damit es
)NES macht die Datem > vom Stecker selbst auslesen. Brauchst nicht aufschrauben. Die Leitung geht ja zum Stecker ;-D Zum Code würde ich mir mal genau aufschreiben, wie die Werte sind die anliegen. ZB wenn Du PORTC einliest: Hast du dann am Port 0x01 anliegen? Dann würde ich zuerst mal Testen
-
Thread
C-Programm für ATmega8 läuft ohne PC-Anschluss nicht
sec==tc); DDRB = 0xff; //PORTB als Ausgang für Speaker und LED DDRC = 0x00; //PORTC als Eingang für Taster zum Stellen der Weckzeit PORTC = 0xff; //PullUp-Widerstände an PORTC ein volatile char h, m; lcdGoto(2,1); lcdWrite("Wecker: : "
Vermutlich geht die Spannung der Batterie in die Knie und der Brown-Out Reset schlägt zu. Welches Board ist das? Schaltplan?
-
Thread
GCC Funktion wird manchmal nicht aufgerufen
Adresse += Spalte; //Spaltenadresse hinzufügen PORTD = Adresse; _delay_us(2); PORTC |= ((1 << PORTC7)); //Enable 1 _delay_us(50); PORTC &= ~(1 << PORTC7); //Enable 0 _delay_us(2); PORTC |= ((1 << PORTC1)); //RS auf 1 PORTD = Symbol;//Symbol schreiben _delay_us(2); PORTC |= ((1 << PORTC7)); //Enable 1 _delay_us(50); PORTC &= ~(1 << PORTC7); //Enable 0 _delay_us(2); }[/c]
-
Thread
HD44780-LCD an ATMega16 reagiert nicht auf Programm
programmiert wird über ISP mittels Atmel AVRISPmkII. Das Display ist wie folgt angeschlossen: LCD-DB7 an PORTC7 LCD-DB6 an PORTC6 LCD-DB5 an PORTC5 LCD-DB4 an PORTC4 LCD-DB3 an GND LCD-DB2 an GND LCD-DB1 an GND LCD-DB0 an GND LCD-RW an GND LCD-RS an PORTB2 LCD-EN an PORTB4 Nach Anlegen der Versorgungsspannung
an das Programm angepasst. Hast du nicht. Denn mit /dem/ Code ist diese Belegung LCD-DB7 an PORTC7 LCD-DB6 an PORTC6 LCD-DB5 an PORTC5 LCD-DB4 an PORTC4 LCD-RS an PORTB2 LCD-EN an PORTB4 erst mal schlicht und einfach gesagt nicht möglich. Dieser Code geht davon aus, dass alle LCD-Anschlüsse
-
Thread
erster Mikrocontroller programmieren -> fragen
Vcc wäre auch nicht schlecht. Schau dir das Bild im Anhang an ;) > Mit den Billigsockeln geht das nicht.[...] man muss den Preis so niedrig halten wie es geht ;) > [...]oder steckst den µC direkt rein. Okay.
/con-isp.png) MOSI und MISO sind getauscht. Ich löte die 2 pins mal um und dann mal sehen ob's geht ;)
-
Thread
Anfängerfrage: LCD-Modul TC1602A-09 4Bit Modus an Atmega32, Code + Belegung
$regfile = "m32def.dat" $crystal = 16000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.5 , Rs = Portc.4 Waitms 50 Initlcd Config Lcdbus = 4 Config Lcdmode = Port Do Cls Locate 1 , 1 Lcd "Hallo" Locate 2 , 1 Lcd
$regfile = "m32def.dat" $crystal = 16000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.5 , Rs = Portc.4 Config Lcdbus = 4 Config Lcdmode = Port Waitms 50 Initlcd Waitms 50 Do Cls Locate 1 , 1 Lcd "Hallo" Locate
-
Thread
ATMega88PA ADSC Bug?
[c] #include <avr/io.h> #include <avr/interrupt.h> ISR(ADC_vect) { uint8_t scrap; PORTC |= (1<<PC3); scrap = ADCH; } int main(void) { cli(); DDRC = (1<<PC3); ADCSRA = 0x00; ADMUX = (1<<REFS0) | (1<<ADLAR); ACSR = (1<<ACD); ADCSRA = (1<<ADEN) | (1<<ADSC)
Wandlung zu starten bevor die letzte abgeschlossen ist. Was macht der ADC wenn man in IDLE Mode geht oder schlicht ADSC setzt obwohl gerade eine Wandlung läuft?
-
Thread
Terrariensteuerung: DCF & 1-Wire zugleich?
M *Nachts um 2 oder 3 (Sommer/Winterzeit, so gewählt dass ich immer nur 1 mal syncen muss) geht die Funkuhr an, wenn das Signal 3 mal in Folge korrekte (Prüfbit) Werte geliefert hat die zueinander passen, wird die Uhr synchronisiert. Ein 4x16 Display zeigt die Infos an die ich haben möchte und
OWIBitFunctions.c - ./common_files/OWIDeviceSpecific.h: "#define __ATmega8__" eingefügt - PORTB auf PORTC geändert (die Ausgabe soll auf LEDs landen, nicht auf dem Display das ich an PORTB hängen habe) - Versorgungsspannungspin des DS18S20 auf +5V gelegt, da im Quelltext irgendwo in einem Kommentar steht
-
Thread
Display fällt in unregelmäßigen Abständen aus
ISR(TIMER0_OVF_vect){ icount++; PORTC=0; PORTD=show[display[pos]]; PORTC|=(1<<pos); if(pos==0&&einspeisen==1) /*Punkt ob eingespeist wird oder nicht*/ PORTD&=~(1<<7); if(pos==1&&powered==1) /*Punkt ob WP gepowered oder
irgendwo Datenmüll erzeugen, der den Stack mit der Zeit wachsen lässt. Nicht sicher ob das überhaupt geht. Florian
-
Thread
ATXMEGA, TWI und die internen pullups
TC_CLKSEL_DIV8_gc; // Activate timer 0 and divide system clock by 8 => f=4MHz, t=250ns // Setup PORTC pin2 & pin3 as output to toggle status LEDS PORTC.DIR = PIN2_bm | PIN3_bm; // Set pins as output PORTC.OUT = PIN3_bm | PIN3_bm; // Switch LEDs off // Setup TWI bus TWIE.MASTER.BAUD
PORTC.OUTSET = PIN3_bm; // Reset TWI-Busy status LED // Send TWI data i = 0; do { // Send one byte to TWI slave PORTC.OUTCLR = PIN3_bm; // Set TWI-Busy status LED
-
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
LCD EAP204-4NLED funktioniert an Atmega16 W204B-NLW nicht??
Anfänger und habe ein LCD W204B-NLW an Port C eines Atmega16 angeschlossen. Nach der JTAG-Hürde an PORTC testete ich das LCD mit folgendem Code (lcd.c) Es zeigt in der 1. und in der dritten Zeile die gewohnten Streifen. Wenn ich nun aber das EA P204-4NLED anschließe funktioniert es. Beide sind 4x20
stimmt überein. Ich weiß mir nicht mehr zu helfen. Hardwareseitig kann nichts sein da ja da EA.. geht. Hänge auch noch die lcd_tools.c und die lcd_tools.h an. Woran könnte das liegen?
-
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
Cool. Jetzt geht es. In der Arduino IDE kann ich zwar USBasp auswählen, aber es bewirkt nichts. Mit AVRDUDE geht es. Ich habe folgendes Kommando benutzt: avrdude -c usbasp -p m328p -e -u -U flash:w:.hex Danke für
-
Thread
I2C Problem (Peter Fleury) Adressierung?
rn Control. Habe das Sensorboard an Port C Hängen. Die Ports aktiviere ich so: DDRC =0xFF; PORTC = 0xFF; Danke für die Hilfe!
. Hab das gerade mal bei meinem Selbstbau getestet. Sobald ich die LEDs an den Pins dran mache geht meine I2C Verbindung auch nicht. Mach die mal ab und teste nochmal.
-
Thread
ADC mit ATmega8A
tun hat, aber genau aus dem Grund lasse ich keine Warnig stehen. Zeile 206, 208, 1000 als uint8_t geht nicht. Zeile 230 Wert bei Initialisierung von i fehlt.
Habe das In-Out mal richtig gestellt. Auf meinem Testboard ändert sich der Ton wenn ich am PortC was mache. Habe allerdings keine Sensoren.