aufhängt bwz. einfriert, wenn ich den Ethernetcontroller, welcher ein ENC28J60 ist und per SPI an PORTC des Xmegas angeschlossen ist, mit einem Netzwerkkabel mit dem LAN-Port meines Notebooks verbinde. Das Problem habe ich so eingegrenzt, dass dann der Interrupt des ENCs aktiv wird und da das Programm
und Ausgänge zum Testen Dim Messimpuls As Byte ' Dcf-Bitbreite Dim Dcf_fehler As Byte Led_dcf Alias Portc.4 Config Led_dcf = Output Led_uhr Alias Portc.3 Config Led_uhr = Output Dim Timer_led_uhr As Byte Zeit_test1 Alias Portc.2 Config Zeit_test1 = Output Zeit_test2 Alias Portc.1 Config Zeit_test2 = Output
Reserved) 0101 0 n PORTA_PINn (1) PORTA pin n (n = 0,1,2 … or 7) 0101 1 x x x (Reserved) 0110 0 n PORTC_PINn (1) PORTC pin n (n = 0,1,2 … or 7) 0110 1 n PORTD_PINn (1) PORTD pin n (n = 0,1,2 … or 7) 0111 x x x x (Reserved) M 1000 M PRESCALER_M ClkPERdivide by 2 (M = 0 to 15) XMEGA E MANUAL 88 Atmel–42005E–AVR–XMEGA
0 hochohmig sein. Wenn ich jetzt einen Pin folgendermaßen deklariere z.B. Pin4 an Port C PORTC.PIN4CTRL = PORT_OPC_WIREDANDPULL_gc; reicht das aus. Macht diese Zeile schon das, was ich vorhabe?? Danke für Antworten.
ist, dann … flag_1ms=0; // setzt flag_1ms auf 0 warten++; if(warten==500) // Angabe Zeit 500ms { PORTC &= ~(1<<PC6); // Schaltet PC6 ein } else { if(warten==1000) // Angabe Zeit 500 ms { PORTC |= (1<<PC6); // Schaltet PC6 aus warten=0; // setzt Zled7 auf 0 } } // ende if warten } // ende if flag } /
ist, dann … flag_1ms=0; // setzt flag_1ms auf 0 warten++; if(warten==500) // Angabe Zeit 500ms { PORTC &= ~(1<<PC6); // Schaltet PC6 ein } else { if(warten==1000) // Angabe Zeit 500 ms { PORTC |= (1<<PC6); // Schaltet PC6 aus warten=0; // setzt Zled7 auf 0 } } // ende if warten } // ende if flag } /
bei jedem drücken einer Taste soll er einen Counter um 1 erhähen und über die 8 LEDS ausgeben z.b. PORTC= ~Cnt; und egal wo ich was eingebe..und ja ich habe einfach alles Probiert..ich bekomme die LED`S nicht aus, sie sind dauerhaft an.) Habt ihr eine Idee wo ich am besten anfangen sollte zu suchen
Programming" unter "Device Information" ist die Information enthalten. In diesem Fall könnt Ihr auf den PORTC ausweichen. An diesem PORT funktioniert das TWI Interface. Ein Beispiel zur Implementierung des TWI Moduls findet ihr unter http://www.atmel.com/devices/atxmega64d3.aspx?tab=overview --> Documents
100's A, B, C & D bits ldi temp, 0b00000001 out DDRC, temp ;COM1 auf Ausgang, COM2 auf Eingang cbi PORTC, 1 ;COM2 kein pullup sbi PORTC, 0 ;COM1 auf High com segs_out_1 out PORTD, segs_out_1 ;Seg1 com segs_out_2 out PORTB, segs_out_2 ;Seg2 rjmp Zaehler Fall_1: ldi mask, 0xF0 ;COM2 rcall LCD_1 mov temp
Betreiben tue ich das Display im 4 Bit Modus. Mein Microcontroller ist der ATMEGA32. Enable an PORTC 7 RS an PORTC 2 R/W an GND DB4 an PORTC 6 DB5 an PORTC 5 DB6 an PORTC 4 DB7 an PORTC 3 Die LCD Beleuchtung funktioniert immerhin. Ich benutze zum Flashen das AVR Studio
Busnummer = 6? breq ow6stp ;ja -> bearbeiten rjmp ow7stp ;sonst Busnummer 7 bearbeiten ; ow0stp: sbi portc,5 ;Portausgang auf High setzen sbi ddrc,5 ;Port auf Ausgang umschalten ret ow1stp: sbi portc,4 ;Portausgang auf High setzen sbi ddrc,4 ;Port auf Ausgang umschalten ret ow2stp: sbi portc,3 ;Portausgang auf High setzen sbi ddrc,3 ;Port auf Ausgang umschalten ret ow3stp: sbi portc,2 ;Portausgang auf High setzen sbi ddrc,2 ;Port auf Ausgang umschalten ret ow4stp: sbi portc,1 ;Portausgang auf High setzen sbi ddrc,1 ;Port auf Ausgang umschalten ret ow5stp: sbi portc,0 ;Portausgang
gerne über JTAG meinen Atmega1284P debuggen. Nun möchte ich eine Schnittstelle dem Board verpassen. PortC wird bis auf PC0 und PC1 (I2C) nicht gebraucht und somit sind keine Pins doppelt belegt mit dem JTAG Interface. Nun gibt das Handbuch nicht die meisten Infos darüber hinaus. Angeben wird nur IEEE
meine Programme bisher nicht auf der Zielhardware debuggen. Wenn das aber wichtig ist, würde ich PortC sowieso nur mit Vorsicht oder für LEDs oder so benutzen, denn da hängt nun mal auch JTAG drauf. Meine MOSFet Treiber koppele ich meistens sowieso über HC244 o.ä. an den MC, erstens schützt das den
Programme bisher nicht auf der > Zielhardware debuggen. > Wenn das aber wichtig ist, würde ich PortC sowieso nur mit Vorsicht oder > für LEDs oder so benutzen, denn da hängt nun mal auch JTAG drauf. > Meine MOSFet Treiber koppele ich meistens sowieso über HC244 o.ä. an den > MC, erstens schützt
[c] #define TASTERPORT PORTC #define TASTERBIT PINC5 [/c] von einem Port liest man über das PINx Register ein und nicht über das PORTx Register. Code nicht einfach gedankenlos übernehmen. Die Zeile hier [c] if(zustand
So wird ein Schuh draus: > > (1<<TASTERBIT) Danke. Noch ein Fehler. Nach dem Erkennen des PORTC - PINC Fehlers hab ich nicht mehr weiter gelesen. Mir hat schon der Teil "alles gelbe ist auskommentiert" gereicht.
starts new load not by 0 } void cwC(uint16_t d_var) // move cw, pins 2-5, in 1/4 steps { PORTC = 0b00010100; long_delay_us(d_var); PORTC = 0b00011000; long_delay_us(d_var); PORTC = 0b00101000; long_delay_us(d_var); PORTC = 0b00100100; long_delay_us(d_var); } // main function int main
// interrupt enable, for overflow sei(); // all interrupts are permitted DDRC = 0b0111100; PORTC = 0; while(1) { cwC(STD_DELAY); } return 0; } Beide Chips funktionieren. Der MC sendet das Signal, der Treiber wird warm. Fotos/Screenshots sind dabei. Ma unten links auf den
DATABUS_OLED_OUT = gfxdata; PORTA |= (1 << DC_OLED); // Set DC low for Display-Cmd, high for Gfx-data PORTC &= ~(1 << RW_OLED); // Set RW low for write _delay_us(5); PORTC |= (1 << RD_EN_OLED); // Set EN high for enable _delay_us(1); PORTC &= ~(1 << RD_EN_OLED); // Set EN low for disable } void send_cmd(
sich C++ darum, das entsprechend aufzulösen. C kann das ja nicht, da kann ich schreiben: [c] PORTC |= 1<<PB7; [/c] und es meckert in keinster Weise. Wenn meine Aufruf-Syntax falsch ist, dann bitte korrigieren.
Hans-Georg Lehnard schrieb im Beitrag #3987772: > constexpr AvrPortRegsTyp2 PORTC = {0x07,0x08,0x09,0x0A}; > … und das gefällt mir besser und ich halte es für stimmiger. Mir auch / ich auch. Cool, Deine Arrays! :-) _Genau so_ werde ich das in Zukunft machen! Eventuell als
delay_1 wird 0 ldi delay_2, 4 ; delay_1 wird 4, delay_1 > 0 wählen out PORTC,temp ; PORTB, PIN0 wird gesetzt com temp ; Einerkomplement bilden ori temp,LED_0 ; temp wird temp ODER LED_0 rcall SUB_DELAY ; Verzögerung
Guten Tag, ich möchte gern vom HyperTerminal aus meine LED's am PORTC durch Eingaben wie "0b11101100" ansteuern. Jedoch werden die eingegebenen Muster nicht korrekt übertragen und schon allein durch Tippen der Leertaste springen die LED's wie wild herum. Das man solche
{ uint8_t c; c = uart_getc(); DDRC = 0xFF; PORTC = c; _delay_ms(200); } else { } } }[/c] Meine Einstellungen im HyperTerminal: BAUD 9600, 8-bit, keine Parität, 1 Stoppbit, keine Flusssteuerung.