-
Thread
Sind Sie sicher Abfrage, Usart, Atmega32
Hast du auch vorher PC7 auf PortC mit [c] DDRC = (1<<PC7) als Ausgang definiert? [/c] Versuch weiter mit der LED zu debuggen. Verschiebe das toggeln der LED zum Beispiel hier hin: [c] if (strcmp (uart_string, "y" )==0) { PORTC ^= (1<<PC7); uart_string[0] = '\0'; uart_schreibe_string("Daten geloescht"); } [/c] Du musst erstmal herausfinden, wo etwas schief läuft. Dann kann man sehen
-
Thread
Bitte um Prüfung meines C-Codes
// Globale Interruptfreigabe } void UART_init(void) { PORTC.DIR = 0xEF; USARTC0.BAUDCTRLB = 0; // BSCALE = 0 USARTC0.BAUDCTRLA = 0x67; // Baudrate 19200
sieht die Hardware aus? Funktioniert die? Hast du Pulse am uC-Pin? Im Code werden keine Pullups am PortC eingeschlatet. Hast du externe Pullups?
-
Thread
ds18b20 ausgabe in temeratur umwandeln
"m8def.dat" $crystal = 16000000 $baud = 2400 $hwstack = 100 $swstack = 100 Config 1wire = Portc.5 Dim Sep(9) As Byte Dim Ar(8) As Byte Dim I As Byte 1wreset 1wwrite &H33 ' ROM-Befehl zum lesen der SerienNr Ar(1) = 1wread(8)
"m8def.dat" $crystal = 16000000 $baud = 2400 $hwstack = 100 $swstack = 100 Config 1wire = Portc.5 Dim Tempdata(9) As Byte Dim Temperature As Integer Do 1wreset 1wwrite &HCC 1wwrite &H44 Waitms 750 1wreset 1wwrite &HCC 1wwrite &HBE Tempdata(1) = 1wread(9) If Tempdata
-
Thread
ATmega 1284P PA4 geht nicht
); // PA3 and PA4 as output while (1) { PORTC |= (1 << PC7); // set PC7 high PORTA |= (1 << PA3) | (1 << PA4); // set PA3 and PA4 high for (counter1=0;counter1<255;counter1++){for(counter2=0;counter2<255;counter2++){}} // waiting PORTC &= ~(1 << PC7); // set PC7 low PORTA &= ~((1 << PA3) | (1 << PA4)); // set PA3 and PA4 low for (counter1=0;counter1<255;counter1++){for(counter2=0;counter2<255;counter2++)
-
Thread
ds18s20 mit bascom und einem atmega8
m8def.dat" $crystal = 1000000 $baud = 2400 $hwstack = 100 $swstack = 100 Config 1wire = Portc.5 Dim Ar(8) As Byte Dim I As Byte Do 1wreset 1wwrite &H33 ' ROM-Befehl zum lesen der SerienNr Ar(1) = 1wread(8) ' 8
-
Thread
Verschiedene Spannungen mit Regler realisieren
Pins steht: The sum of all IOH for PORTA and PORTB must not exceed 100mA. The sum of all IOH for PORTC, PORTD, PORTE must for each port not exceed 200mA.
-
Thread
AtMega8 und LM75
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 Lcd
-
Thread
#defines in Schleifen verwenden (mit laufender Variable)
PIN PINB #define BM_3_BIT 1 //Eingang 4 #define BM_4_DDR DDRC #define BM_4_PORT PORTC #define BM_4_PIN PINC #define BM_4_BIT 1 [/c] in der .c file möchte ich die Eingänge setzen: z.B Eingang 1: [c] BM_1_DDR &= ~(1 << BM_1_BIT); BM_1_PORT |= (1<<BM_1_BIT); [/c] Jetzt
die einzelnen Pins/Ports: [...] > //Eingang 4 > #define BM_4_DDR DDRC > #define BM_4_PORT PORTC > #define BM_4_PIN PINC > #define BM_4_BIT 1 > > in der .c file möchte ich die Eingänge setzen: > z.B Eingang 1: > > BM_1_DDR &= ~(1 << BM_1_BIT); > BM_1_PORT |= (1<<BM_1_BIT); >
-
Thread
PLL Startprobleme beim ATXmega128A1U
15:23:26 */ #include <avr/io.h> #include "clksys_driver.h" int main(void) { PORTC.DIR=PIN7_bm; // PORTC.OUT=PIN7_bm; // PORTCFG.CLKEVOUT = PORTCFG_CLKOUT_PC7_gc; _delay_ms(10000); OSC_XOSCCTRL = OSC_XOSCSEL_XTAL_16KCLK_gc | OSC_FRQRANGE
-
Thread
PIC18F45K22 - Welchen Bootloader verwenden?
oder ein anderes File), PIC Typ wählen, Baudrate und Frequenz einstellen, Uart wählen (PORTB oder PORTC), Init ggf. anpassen (für Digitalports) und die Config-Register setzen. make generiert dann das Hex-File. Wie sehen denn Deine o.g. Werte/Einstellungen aus ? BTW: es ist auch ein CAN-Bootloader
-
Thread
Zur jeder Zeit der Programmlaufzeit, Tastendruck speichern
include "m16def.inc" .include "init_def.inc" INIT: ldi temp, 0xFF out DDRC, temp ;define Portc as output out DDRB, temp ; define PORTB as output ldi temp, 0x00 out DDRD, temp ; define PORTD as input ldi temp, 0xFF out PORTD, temp ;activate pull ups ldi r26, 0xFF ;
;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; nötig um alle pins an portc zu verwenden in temp,MCUCSR ; Read MCUCSR ori temp,1 << JTD ; Set jtag disable flag out MCUCSR, temp ; Write MCUCSR out MCUCSR, temp ; and
-
Thread
Multitasking
PIND #define KEY0 0 #define LED_DDR DDRC #define LED_PORT PORTC #define LED0 0 volatile uint8_t flag_1ms; uint8_t taste_lesen(void) { if (KEY_PIN & (1<<KEY0)) return 1; else return 0; } void led_blinken(uint8_t taste) {
-
Thread
avr asm: interrupt int0 löst bei fallender flanke nicht aus
, SREG ;Inhalt des Statusregisters retten push r16 ldi r16, 0b11111111 out PORTC, r16 pop r16 ;Statusregister wieder herstellen out SREG, r16 pop r16 ;r16 wieder herstellen reti ;Rückkehr von der ISR INT1_HANDLER: ;macht die led aus
am µC auf Masse ziehe, dann sollte nach meinem Wissen der INT0-INTERRUPT ausgeführt werden. Die an portC angeschlossene LED bleibt jedoch aus. Was mache ich falsch? Gruß ckrex
-
Thread
ArduinoProMini mit ATmega328P - Input funktioniert nicht
ist der Code: [c] void Init(void); int main (void) { Init(); while(1){ if(PORTC == 0) PORTD |= (1<<PIND6);//LED 1 an else PORTD |= (1<<PIND7);//LED 2 an } } void Init(){ //output fuer LEDs DDRD = (1<<PIND6) | (1<<PIND7); } [/c]
-
Thread
Probleme mit AVR Frequenzmessung
// PC5=out, PC4=out, PC3=out, PC2=out, Display DB7-DB4 // PC1=in, PC0=in, Mode2 und Mode1 PORTC |= (1 << PC0); // Methode F (0x01) DDRB |= (1 << DDB0) | (1 << DDB1) | (1 << DDB2) | (1 << DDB3) | (1 << DDB4) | (1 << DDB5) | (1 << DDB6) | (1 << DDB7); // PB0=out, PB1=out, PB2=out,
-
Thread
Einfache Funkbrücke mit RFM12 und ATmega16
#define RFM12_SCK_off() clear_bit (RFM12_SCK_port, RFM12_SCK_bit) #define RFM12_SDI_port PORTC #define RFM12_SDI_pin PINC #define RFM12_SDI_dir DDRC #define RFM12_SDI_bit 5 #define RFM12_SDI_on() set_bit (RFM12_SDI_port, RFM12_SDI_bit) #define RFM12_SDI_off() clear_bit (RFM12_SDI_port, RFM12_SDI_bit) #define RFM12_SDO_port PORTC #define RFM12_SDO_pin PINC #define RFM12_SDO_dir DDRC #define RFM12_SDO_bit 2 #define RFM12_IRQ_port PORTC #define RFM12_IRQ_pin PINC #define RFM12_IRQ_dir DDRC #define RFM12_IRQ_bit
-
Thread
LCD-Decoder mir ATMega32
Eingang Ddrd = &B11111011 'Interrupt-Pin an Port D.2 als eingang konfigurieren Portc = &B00000000 'Pull-Up abschalten Portd = &B00000100 'Pull-Up an Port D.2 einschalten On Int0 Lesen 'Interrupt wird bei
-
Thread
Anfängercode, alle 3 Minuten ein anderer Pin auf High
Stunde16 an PB7 Stunde16 Alias Portb.7 Config Stunde16 = Output 'Stunde17 an PC0 Stunde17 Alias Portc.0 Config Stunde17 = Output 'Stunde18 an PC1 Stunde18 Alias Portc.1 Config Stunde18 = Output 'Stunde19 an PC2 Stunde19 Alias Portc.2 Config Stunde19 = Output 'Stunde20 an PC3 Stunde20 Alias Portc.3 Config Stunde20 = Output 'Stunde21 an PC4 Stunde21 Alias Portc.4 Config Stunde21 = Output 'Stunde22 an PC5 Stunde22 Alias Portc.5 Config Stunde22 = Output 'Stunde23 an PC6 Stunde23
-
Thread
Standard LCD - 162CBCBC : LCD Clock?
define THREE_LINES //#define FOUR_LINES #define PORT_LCD_DATA_ENABLE PORTC #define DDR_LCD_DATA_ENABLE DDRC #define LCD_DATA_ENABLE 6 #define PORT_LCD_CLOCK PORTC #define DDR_LCD_CLOCK DDRC #define LCD_CLOCK 4 #define PORT_LCD_DATA PORTC #define DDR_LCD_DATA DDRC #define LCD_DATA 5 #define BUSY_WAIT 6000 #define LCD_RS_PIN 4 #define LCD_LIGHT_PIN 7 #define NOP() asm("nop
-
Thread
Problem mit der Portinizialisierung
void initport(void) { DDRC = 0xff; // Alle Pins des Ports D als Ausgang definieren PORTC |= (1<<PC2); // PC2 auf high setzen } int main(void) { initport(); // DDRC = 0xff; // Alle Pins des Ports D als Ausgang definieren // PORTC |= (1<<PC2); // PC2 auf high setzen while(1) { PORTC &= ~(1<<PC2); // PC2 auf low setzen _delay_ms(1000); // Eine Sekunde +/-1/10000 Sekunde warten... PORTC |= (1<<PC2); // PC2 auf high setzen _delay_ms(1000);
-
Thread
Display mit SSD1289 füllt nicht den gesamten Bereich
Problem? Das Display wird mit 3.3V versorgt und hängt an einem STM32 Der Display Port ist 1:1 mit PortC verbunden. Die Steuerleitungen sind anderweitig verteilt. Mein Code ist ebenfalls im Anhang... Hier noch jener Code-Teil mit welchem ich die Farben ausgebe: [c] LCD_ResetDevice();
-
Thread
Ausgänge gegenseitig verriegeln
FEEDBACK7 6 #define FEEDBACK8 7 #define LED_DDR DDRC #define LED_PORT PORTC #define LED_PINS PINC #define LED_RUNNING 0 #define RELAY_DDR DDRD #define RELAY_PORT PORTD #define RELAY_PINS PIND #define RELAY1 0 #define RELAY2
-
Thread
AVR: µC geht nicht in den Idle-Mode
DDRA = 0x00; DDRB = 0x00; DDRC = 0x00; // DDRD = 0x00; PORTA = 0x00; PORTB = 0x00; PORTC = 0x00; // PORTD = 0x00; ACSR |= (1<<ACD); EXT_INT0_REG &= ~(1<<EXT_INT0_PIN); // activate external interruptports EXT_INT0_PORT |= (1<<EXT_INT0_PIN); // GICR |= (1<<INT0
-
Thread
Die ersten Versuche in C
anschaust, wird dir auffallen, das die Fallunterscheidung sich nur darin unterscheidet, das du in PORTC ein anderes Muster lädst: [c] TCNT0=128; // Preload für Timer Interrupt 128 = 1ms switch(in) { case0: // Digit 0 { PORTC = LED_off; // Alle LEDs aus SPDR =
RCK); // RCK Low PORTB |= (1<<RCK); // RCK High - Daten werden in Register Ÿbernommen PORTC = ebene_0; // LEDs fŸr ebene 0 an break; } [/c] Du könntest also den Grossteil der Routinen gemeinsam machen und nur das Setzen des PORTC dann mit switch-case machen. Ausserdem ist
-
Thread
XPlained USART zu USB-Buchse
the USB Virtual COM PORT of the Xplain * - XMEGA A1 Xplained evaluation kit * USARTC0 on PORTC is used. It is located on the J4 header Das verwirrt mich etwas. Ich verstehe hier, dass UARTC0 das USB-Port auf dem Board nutzt. Zugleich ist UARTC0 am Pinheader J4 zu finden? Ist das richtig?
// Globale Interruptfreigabe } void UART_init(void) { PORTC.DIR = 0xEF; USARTC0.BAUDCTRLB = 0; // BSCALE = 0 USARTC0.BAUDCTRLA = 0x67; // Baudrate 19200
-
Thread
Anfänger in C und welcher PIC (evtl. uno32) ist geeignet ?
LATC = 0x00; // alle LEDs aus (schon vor der Richtung !) TRISC = 0xF0; // PORTC bit 0..3 als Ausgang while (1){ while(PORTAbits.RA2 == 1){;} // warte auf Tastendruck [tu nichts} LATC++; // register LATD um eins erhöhen
Analoger Input TRISB = 0b00000001; // RB0 ist Taster SW1 TRISC = 0; // PORTC ist Ausgang TRISD = 0; // PORTD sind die LEDs [/c] Diese Initialisierung braucht man eigentlich nicht mehr ändern, wenn man das nutzt, was auf dem Board ist. Es wird also auch der
-
Thread
Warum kann nicht alles so einfach wie Arduino sein?
case 6: PORTB |= (1 << PB6); break;\ case 7: PORTB |= (1 << PB7); break;\ \ case 8: PORTC |= (1 << PC0); break;\ case 9: PORTC |= (1 << PC1); break;\ case 10: PORTC |= (1 << PC2); break;\ case 11: PORTC |= (1 << PC3); break;\ case 12: PORTC |= (1 << PC4); break
case 6: PORTB &= ~(1 << PB6); break;\ case 7: PORTB &= ~(1 << PB7); break;\ \ case 8: PORTC &= ~(1 << PC0); break;\ case 9: PORTC &= ~(1 << PC1); break;\ case 10: PORTC &= ~(1 << PC2); break;\ case 11: PORTC &= ~(1 << PC3); break;\ case 12: PORTC &= ~(1 << PC4)
-
Thread
PIC16F einzelne Portpins ein/auslesen
einzelne Pins an verschiedenen Ports ausgeben. ich habe mir das so vorgestellt: COMF PORTC, w ; invertiertes Einlesen der Schalter ins w-Register MOVWF zelle1 ; Kopieren vom w-Register in die zelle1 BTFSC zelle1, 0 ; Abfragen, ob zelle1 bit 0 high oder low
movlw b'00000000' movwf PORTB movlw b'00000000' movwf PORTC movlw b'00000000' movwf PORTD movlw b'00000000' movwf PORTE banksel BANK1 movlw b'00000000' movwf (TRISA
-
Thread
Hilfe bei Programmierung in Mplab
******************************************************** ;## 7 Segmentanzeige #define A_SEG PORTC,0 #define B_SEG PORTC,1 #define C_SEG PORTC,2 #define D_SEG PORTC,3 #define E_SEG PORTC,4 #define F_SEG PORTC,5 #define G_SEG PORTA,4 #define DP_SEG PORTB,4 #define
;## Taster #define S1 PORTB,5 #define S2 PORTA,3 ;## RS232 #define TX PORTC,6 #define RX PORTC,7 ;************************************************************************************** ;Makros Bank0 MACRO ;macro to select data RAM bank 0 bcf STATUS
-
Thread
ATMEGA32 PORTC
Hallo, Bei ATMEGA32 warum kann ich beim PORTC verschiedene Ausgänge nicht ein und ausschalten? danke im voraus
-
Thread
AVR-Net-IO und Grafik-lcd möglich?
bis 7 (PORTA4:7) verfügbar, diese kann man auch als normale IOs benutzen. An der DSUB25 liegt PortC und ADC 0-3 (PortA0:3) An dem Ext-Anschluss sind PortB0,3 und PortD3:7 Die SPI-Schnittstelle (PortB5:7) musst du dir am ISP-Anschluss abgreifen. Denn Ethernetchip kannst du auch rausnehmen wenn