-
Thread
Atmega8 stop nach wenigen sec.
DDRD |= (1 << DDD5); DDRC |= (1 << DDC2); // Pull Up von Pin 0 und Pin 1 setzen: PORTC = ( 1 << PC0 ) | ( 1 << PC1 ); } //********** //** Main ** //********** int main (void) { cli(); // /** Initzialisiere Ports **/ port_init(); /** Configure debouncing routines
-
Thread
Hilfe bei der seriell Port Kommunikation mit Atxmega64a3u
; } void setUPSerial() { PORTC_REMAP |= 0x16; PORTC_OUTSET = PIN3_bm; PORTC_DIRSET = PIN3_bm; PORTC_OUTCLR = PIN2_bm; PORTC_DIRCLR = PIN2_bm; USARTC0_BAUDCTRLB = 0; USARTC0_BAUDCTRLA = 0x22; USARTC0
stdin = uart_str; printf("Hello World!\n\r"); while(1) { _delay_ms(100); PORTC_OUT &= ~(1<<4); _delay_ms(100); PORTC_OUT |= (1<<4); } return 0; }[/c]
-
Thread
Arduino UNO und I2C - A4 Problem
auf das Board gegangen. Das Testprogramm sieht so aus: [CODE] DDRC = 0xFF; while(1) { PORTC = 0xFF; _delay_us(5); PORTC = 0; _delay_us(5); } [/CODE] Da erwarte ich eine Rechteckspannung von ungefähr 100kHz, wie es bei I2C nicht unüblich ist. Auf PC5 ist das auch OK, aber
-
Thread
entprellen.bekomme es nicht richtig hin.
void) { // **** Einrichten von Ein- und Ausgängen *************** DDRC = 0x01; // PortC 0 Ausgänge PORTC1-6 Eingänge PORTC |=0x02; // Pull Up an PortC0 und 1 aktivieren } char taster(void) { static unsigned char zustand; char rw = 0; if(zustand == 0 && !(TASTERPORT
while(1) { //if((PINC&(1<<PINC1))==0 && zustand_taster==0) if(taster()) { PORTC|=(1<<PC0); } if(taster()) { PORTC&=~(1<<PC0); } } return 0; } [/c] Also ich habe den code für die
-
Thread
Bascom alias
. Funktioniert gut, aber nun will ich meinen Text abwechselnd über Porta(untere 8 Ledreihen) und Portc(mittlere 8 Ledr)ausgeben. Die oberen 4 Reihen spielen erstmal noch keine Rolle. Zeile1 in der timer_isr müßte also im Wechsel neu definiert werden. $regfile = "m32def.dat" $crystal = 16000000
hwstack = 32 $swstack = 30 $framesize = 40 Config Porta = Output Config Portb = Output Config Portc = Output Config Portd = Output Portd = 255 Portc = 255 Porta = 255 Config Timer0 = Timer , Prescale = 64 On Timer0 Timer_isr Enable Timer0 Enable Interrupts Stop Timer0 Config Portd.5
-
Thread
atmega8 COMPA und COMPB zugleich verwenden
#define PWM_DDR_D DDRD // Datenrichtungsregister für PWM #define PWM_PORT_C PORTC // Port für PWM #define PWM_DDR_C DDRC // Datenrichtungsregister für PWM // ab hier nichts ändern, wird alles berechnet #define T_PWM_A (F_CPU/(F_PWM*PWM_STEPS_A
-
Thread
Definition der baudrate: Fehler- "expected identifier or '(' before numeric constant"
include <util/delay.h> #include <util/setbaud.h> #include <stdio.h> void io_init(void){ PORTC_DIR |= (1<<4); } void setUPSerial() { PORTC_REMAP |= 0x16; PORTC_OUTSET = PIN3_bm; PORTC_DIRSET = PIN3_bm; PORTC_OUTCLR = PIN2_bm; PORTC_DIRCLR = PIN2_bm; USARTC0
; } void setUPSerial() { PORTC_REMAP |= 0x16; PORTC_OUTSET = PIN3_bm; PORTC_DIRSET = PIN3_bm; PORTC_OUTCLR = PIN2_bm; PORTC_DIRCLR = PIN2_bm; USARTC0_BAUDCTRLB = 0; USARTC0_BAUDCTRLA = 0x22; USARTC0
-
Thread
Hilfe bzeüglich Timer & LED
aktivieren sei(); DDRC=3; // damit sind dann PC0 und PC1 Ausgänge while(1) { PORTC = 11; //0. bit im Port C setzen PORTC = 0; //0. bit im Port C löschen } } /* Der Overflow Interrupt Handler wird aufgerufen, wenn TCNT0 von 255 auf 0 wechselt (256 Schritte), d.h
-
Thread
Erklärung des Programmes/der Software
Register DDRC, PC4 wird Ausgang PIND ...: Ist das 5. Bit in PIND gesetzt? Ist der Eingang high? PORTC ...: Setzt bzw. löscht Bit 5 im PortC Register, Led an bzw. aus (je nach äußerer Beschaltung).
-
Thread
ADC Vref im Programm umschalten
// Eingänge für ADC initialisieren void adc_init () { DDRC &= ~((1<<PC4) | (1<<PC5)); PORTC |= (1<<PC4) | (1<<PC5); } // ################## ADC Routine ############################# int adc (int ch) { int i=0; int res =0; int z=0; int filter = 4; // digitaler
Andreas schrieb im Beitrag #4015093: > PORTC |= (1<<PC4) | (1<<PC5); das würde ich weglassen und eine Fehlerbeschreibung wäre auch hilfreich
-
Thread
error: 'POTC' undeclared (first use in this function)
Ersetzt POTC mal durch PORTC MaxUnity24 schrieb im Beitrag #4014917: > ?c MaxUnity24 schrieb im Beitrag #4014918: > MaxUnity24 schrieb: >> ? Das hier ist kein Chat, da kann es auch mal mehr als 5min dauern bis jemand antwortet
-
Thread
ATmega128 und SPI Problem
PB3 #define PIN_SPI_MOSI 2 // PB2 #define PIN_SPI_SCK 1 // PB1 #define PORT_SPI_CS PORTC #define DDR_SPI_CS DDRC #define PIN_SPI_CS1 7 // PC7 #define PIN_SPI_CS2 6 // PC6 #define PIN_SPI_CS3 5 // PC5 in der spi_master_slave.c /* * spi_master_slave.c *
PB3 #define PIN_SPI_MOSI 2 // PB2 #define PIN_SPI_SCK 1 // PB1 #define PORT_SPI_CS PORTC #define DDR_SPI_CS DDRC #define PIN_SPI_CS1 7 // PC7 #define PIN_SPI_CS2 6 // PC6 #define PIN_SPI_CS3 5 // PC5 in der spi_master_slave.c /* * spi_master_slave.c *
-
Thread
SPI auf Board XMEGA256A3BU Xplained
Datenübertragung statt, welches ich per Oszi festgestellt habe. Mit der gleichen Konfiguration an PORTC funktioniert es ohne Probleme so wie es soll. An PORTD wird das SPI auch geteilt mit dem Flash und dem On-Board-Display, dafür habe ich extra eine Solution in Atmel-Studio gemacht ohne das Board
-
Thread
I2C Kein ACK :-(
I2C_sende(adresse); } void I2C_init(void) { DDRC &= !((1<<DD0)|(1<<DD1)); PORTC = (1<<DD0)|(1<<DD1); TWSR = 0; /* no prescaler */ TWBR = ((F_CPU/SCL_CLOCK)-16)/2; /* must be > 10 for stable operation */ } int main(void) { USART_init
-
Thread
undefined reference to 'main'
#warning kein F_CPU definiert #endif #define KEY_DDR DDRC #define KEY_PORT PORTC #define KEY_PIN PINC #define KEY_mitte 7 #define KEY_links 3 #define KEY_rechts 4 #define KEY_oben 6 #define KEY_unten 2 #define ALL_KEYS (1<<KEY_mitte
<< PB0); DDRC = 0x00; // Eingänge DDRC = ((1 << DDC0) | (1 << DDC1)) ; // PC0-3 Ausgang PORTC = 0xFF; PORTC &= ~((1<<PC0) | (1 <<PC1)); DDRD = 0xFF; // Alle Pins von Port D als Ausgang PORTD = (0<<PD0)| (0<<PD1)|(0<<PD2)|(0<<PD3)|(0<<PD4)|(0<<PD5)|(0<<PD6); DDRA = 0xFF
-
Thread
arduino uno verhält sich nicht deterministisch
#include <avr/interrupt.h> void setup() { DDRC |= _BV(DDC0); } void loop() { PORTC ^= _BV(PC0); }[/c] Das Oscilloscopebild hab ist im Anhang. Ich kenne dieses Verhalten eigentlich nur im Zusammenhang mit Betriebsystemen... Viele Grüße!
Funktion loop() aufgerufen wird, was einen Overhead gegenüber dem den direkten Betätigen des Ports ( PORTC ^= _BV(PC0); ) bedeuted.
-
Artikel
Pollin Funk-AVR-Evaluationsboard
LCD-Ansteuerung und die Prototypen für die LCD Funktionen. Hier wurden die Signalleitungen von PORTD auf PORTC geändert. Und die Definition von F_CPU wurde mit #if/#endif auskommentiert, weil dieser Wert bereits mit den Projekt Configuration Options im AVR Studio auf 12 MHz gesetzt ist. Die Includedatei funkhw.h
-
Thread
Custom character bei Display mit HD44780
7 Font PORTC = 0b00000000; //Enable PORTC = 0b00000001; _delay_ms(500); PORTA = 0b00001111; //Display an, Cursor move, Cursor blinkt nicht PORTC = 0b00000000; //Enable PORTC
= 0b00000000; //Enable PORTC = 0b00000001; PORTD = 0b00000001; //Data mode PORTA = 0b00000000; //Schreibe neues Zeichen --> nichts passiert PORTC = 0b00000000; //Enable PORTC = 0b00000001;
-
Thread
Fifo über SPI verschicken
" der 16 Bit Befehl/Wert ist, welcher übertragen werden soll. [c]for(int i = 0; i<2; i++){ PORTC &= ~(1<<PC1); //PIN PC1 auf Low ziehen um dem Slave den Start der Übertragung zu signalisieren uint8_t byte_to_send = (command && 0x00FF); //Die unteren 8 Bit maskieren spi_send(byte_to_send
>> 8; //Die oberen 8 Bit maskieren spi_send(byte_to_send); // Übertragen der oberen 8 Bit PORTC |= (1<<PC1); //PIN PC1 auf High ziehen um dem Slave die Beendigung der Übertragung zu Signalisieren }[/c]
-
Thread
XBee-Pro 868 Digital Input
$baud = 9600 Dim S As String * 18 On URXC OnRxD Enable URXC Enable Interrupts Config Portc.5 = Output Portc.5 = 0 Do //Vergleich der Hexwerte Loop End Onrxd: 'S = S + Chr(udr) S = Chr(udr) Return [/c] Kann mir jemand bei dem Vergleich auf den HEX Wert helfen?
-
Thread
Denkfehler mit PCA9536 (Problem)
Abfrage adr1 w i2c_stop(); if (ret == 0) { PORTC|=(1<<PC5); } else // Fehlererkennung { PORTC &=~(1<<PC5); } } int8_t PCA9536_Write(uint8_t slave_address, uint8_t cf_register, uint8_
i2c_start(slave_adresse); // Abfrage Slave vorhanden i2c_stop(); if (ret == 0) { PORTC|=(1<<PC5); } else // Fehlererkennung { PORTC &=~(1<<PC5); } } int8_t PCA9536_Write(uint8_t slave_addresse, uint8_t cfg_Reg, uint8_t data) {
-
Thread
Bascom Variablen
Port B , ' $regfile = "m32def.dat" $crystal = 8000000 'SDA und SCL definieren Config Sda = Portc.1 Config Scl = Portc.0 Dim X As Byte Dim A As Byte Dim B As Byte Dim Lesen As Byte CLS Do '---- schreibe
Eeprom_adr = &H0000 ' ab Adresse 0 schreiben Config Sda = Portc.1 ' I2C-Port festlegen Config Scl = Portc.0 ' I2C-Port festlegen Print "Config Finshed" Gosub Write_eeprom Wait
-
Thread
LCD Display DG-12232
font16x16.font" $lib "glcdSED1520.lbx" Config Graphlcd = 120 * 64sed , Dataport = Portd , Controlport = Portc , Ce = 4 , Ce2 = 5 , Cd = 2 , Rd = 3 'The dataport is the portname that is connected to the data lines of the 'LCD 'The controlport is the portname which pins are used to control the lcd 'CE =CS
-
Thread
Bascom I2C Eeprom
regfile = "m32def.dat" $crystal = 8000000 $baud = 9600 'SDA und SCL definieren Config Sda = Portc.1 Config Scl = Portc.0 Dim X As Byte Dim A As Byte Dim B As Byte Dim Lesen As Byte Cls Do '---- schreibe in EEprom ---- For A = 1 To 10 Incr X
-
Thread
Assembler rcall LCDinit
;loop: in r18, PIND ;Schalter werden ausgelesen ; out PORTB,r18 ; out PORTC,r18 ;end: rjmp loop rcall LCDinit .include "Display.asm" [/avrasm]
-
Thread
USART Zeichenausgabe nach Reset
// 1=pull up; 0=no pull up PORTA = 0b00000000; // PORTB = 0b11111111; // LEDs PORTC = 0b00000000; // Dip switch PORTD = 0b00000000; // USART1 PORTE = 0b00000000; // USART0 PORTF = 0b00000000; PORTG = 0b00000000; PORTH = 0b00000000; // USART2 PORTJ
-
Thread
Problem mit Portexpander und I²C
i2c_twi.lib" '############################## 1²C Bus ########################## Config Sda = Portc.1 'Pin23 Config Scl = Portc.0 Config Portc.1 = Output Config Portc.0 = Output 'Pin22 I2cinit Waitms 200 ''''Portexpander
-
Thread
Atmega16 erase funktioniert nicht mit ISP
Problem wäre in diesem Fall gelöst... Der ATmega16 verfügt übrigens auch einen JTAG Anschluss auf PORTC, ich nutze den ebenfalls, mit dem habe ich nie Probleme, mit dem ISP hatte ich öfters das eine oder das andere Problem. lg
-
Thread
PWM und AD-Messung Assembler
******************************************************** ;## 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
Problem bei der Auswertung eines Neigungsschalters
und weitermachen... Ich hatte den Sensor an ein RN-Control Bord angeschlossen. Der hat an seinem Portc zusätzliche LEDs und vor allem Widerstände, die den Sensor anscheinend stören. Soviel zum Thema "Beschaltung nach DB". Ohne LED Klimbim geht's sogar mit dem internen Pull-up ohne Probleme.
-
Thread
4-wire resistive Touchscreen Schaltung TWI USART-Anbindung ATmega8 Assembler LS-7 LS-8
.equ TOUCH_XN_PIN_NR = 3 .equ TOUCH_XN_DDR = DDRC .equ TOUCH_XN_PORT = PORTC .equ TOUCH_XN_PIN = PINC Nach meiner Meinung ist ein Multi-Touch-Screen mit diesem Verfahren nicht möglich, oder? Das Assembler-Programm könnte etwas effektiver programmiert werden
-
Thread
8x8 RGB Matrix Ansteuerungsproblem
DDRD=0b11111111; DDRC=0b11111111; while(1) { //Alles auf Null setzten PORTC=0b0000000; _delay_ms(10); PORTD=0b0000000; //Startzustände für BUS _delay_ms(10); PORTC=0b1111111; _delay_ms(10); //Outputenable setzten PORTD=0b01010000
-
Thread
1Wire (DS18B20) + ATXMega128A1
// Clock auf 32MHz stellen } void UART_init(void) { PORTC.DIR = 0xEF; USARTC0.BAUDCTRLB = 0; // BSCALE = 0 USARTC0.BAUDCTRLA = 0x67; // Baudrate 19200
-
Thread
Atmega Net-IO Porterweiterung
Hab erstmal den Fehler gefunden. hab tatsächlich vergessen den PortC auf eingang zu setzen. Danke trotzdem an alle
gemacht haben, haben dich auf den Fehler aufmerksam gemacht. > hab tatsächlich vergessen den PortC auf eingang zu setzen. > Danke trotzdem an alle *Trotzdem* was? Dass sie dir *nicht* helfen konnten? Ich würde behaupten das muss heissen: Danke an alle die mitgewirkt haben.
-
Thread
MIDI-Controller mit Klinkenbuchsen - Überspannung und Kurzschluss
8 Pedale an PortA über 6,3mm Stereo-Klinke extern angeschlossen -> Analoge Eingänge 8 Taster an PortC über 6,3mm Mono-Klinke extern angeschlossen -> Digitale Eingänge SPI-Bus PortB4-7 inkl. Reset über 9Pol Sub-D Buchse herausgeführt -> Update und Erweiterungen Die Beschaltung des LCD-Displays,
-
Thread
"Conflicting types for." ich finde den Fehler nicht
| (1<<PB2); // PWM Kanal DDRC |= (1<<PC0)|(1<<PC3)|(1<<PC4)|(1<<PC5); // PC4&5 für LEDs PORTC &= ~((1<<PC0)|(1<<PC3)|(1<<PC5)); // LEDs aus PORTC |= (1<<PC4); DDRD &= ~((1<<PD0)|(1<<PD1)|(1<<PD2)|(1<<PD3)); PORTD |= (1<<PD0)|(1<<PD1)|(1<<PD2)|(1<<PD3); } Hatte ich im Netz gesehen