-
Thread
Servo an Atmega328p funktioniert nicht
= 24 Config Adc = Single , Prescaler = Auto , Reference = Avcc Config Portb = Output Config Portc.0 = Output Config Portc.1 = Output Config Portc.2 = Output Dim Adcin1 As Integer Dim Adcin2 As Integer Dim Periodcounter As Byte Dim Servovalue1 As Single Dim Servovalue2 As Single 'Phase
poti 2 If Adcin2 < 40 Then 'LED's je nach Potistellung ein/aus Portc.0 = 1 Portc.1 = 0 Portc.2 = 0 Elseif Adcin2 < 984 Then Portc.2 = 0 Else Portc.0 = 0 Portc.1 = 0 Portc.2 = 1 End If Adcin2 = Adcin2
-
Thread
Pin auf high setzen MKL26
pointer */ #define PORTB ((PORT_Type *)PORTB_BASE) /** Peripheral PORTC base address */ #define PORTC_BASE (0x4004B000u) /** Peripheral PORTC base pointer */ #define PORTC ((PORT_Type *)PORTC_BASE) /*
eingeschaltet? Wenn nein dann mach das: [c] // PORT C einschalten SIM->SCGC5 |= SIM_SCGC5_PORTC_MASK; // Pin PTC01 auf Alternative 1 (GPIO) PORTC->PCR[1] = PORT_PCR_MUX(1); PTC->PDDR |= (1 << 1); //Pin PTC01 auf Ausgang PTC->PDOR |= (1 << 1); //Pin PTC01 auf High
-
Thread
Atmega 2560 zu wenig Spannung am Ausgang
ATMega Pin: 59 Stiftleiste2:13 #define portIN2_13 PORTJ #define portIN1_13 PORTB #define portEN_13 PORTC #define portOCD_13 PORTC #define ddrIN2_13 DDRJ #define ddrIN1_13 DDRB #define ddrEN_13 DDRC #define ddrOCD_13 DDRC Und dann im main: portEN_13 |= (1<<EN_13); // Ich denke der Code ist in
PortC R.I.P.
-
Thread
Bits umtauschen (spiegeln)
und ich habe mein 16x10 LED Display vorgekramt. ATmega128 es werden 2x8Bit (PortA linke hälfte, PORTC rechte hälfte)) breit pro Zeile dargestellt und das alles 10x (PORTD mit 74HCT42 0-9 decodiert)nach unten widerholt.(PORTD=10->alles aus) Seinerzeit(tm) hatte ich das mit den Fastavr-"Compiler" (ähnlich
ganz gut. Durch eine damalige Unachtsamkeit beim Routing sind jedoch alle Portbits vom PORTA und PORTC vertauscht. aus PA.0->PA.7 wurde PA.7->PA.0 usw. *schnief* Ich habe das damals softwaremäßig so gelöst: [c] Function umkehr(n As Byte) As Byte Local m As Byte m = 0 If n.0 Then : Set m.7 :
-
Thread
Externe .c bringt nur theater
hc_sr04_init(); timer1_motorpwm_init(); sei(); while (1) { SERVO_MITTE; PORTC = (0<<MOTORB_2) | (0<<MOTORA_2) | (1<<MOTORB_EN) | (1<<MOTORA_EN); abstand = HC_SR_04(); if (abstand >100) { MOTOR_PWM(50,50); } else if (abstand > 40 && abstand <=
links = HC_SR_04(); SERVO_RECHTS; _delay_ms(250); rechts = HC_SR_04(); PORTC = (1<<MOTORB_2) | (1<<MOTORA_2) | (1<<MOTORB_EN) | (1<<MOTORA_EN); MOTOR_PWM(10,10); _delay_ms(1000); PORTC = (0<<MOTORB_2) | (0<<MOTORA_2) | (1<<MOTORB_EN) | (1<<MOTORA_EN);
-
Thread
Interrupt Frage ATMEGA8535
0]; _delay_ms(1); PORTD = zaehlen[ZehnerM]; PORTC = driver[1]; _delay_ms(1); PORTD = zaehlen[EinerS]; PORTC = driver[2]; _delay_ms(1); PORTD = zaehlen[ZehnerS]; PORTC = driver[3]; _delay_ms(1); } return 0;
TIMSK |= (1<<OCIE1A); sei(); while (1) { PORTD = zaehlen[EinerM]; PORTC = driver[0]; _delay_us(100); PORTD = zaehlen[ZehnerM]; PORTC = driver[1]; _delay_us(100); PORTD = zaehlen[EinerS]; PORTC = driver[2]; _delay_us(100); PORTD =
-
Thread
Problem: 16 Bit Variable über UART zu empfangen
PORTD ^= (1<<PD2); _delay_us(100); PORTD ^= (1<<PD2); } void stop_conversion(void) { PORTC &= ~(1<<PC2); } void start_conversion(void) { PORTC |=(1<<PC2); } void reset_ADS1258(void) { PORTC &= ~(1<<PC0); _delay_us(100); PORTC |= (1<<PC0); _delay_ms(17); } void ADCInit
{ cli(); Command=0; buesy=1; t=0; while(t==0) { PORTC |=(1<<PC2); // START pin of ADS high level PORTC &=~(1<<PC2); // START pin low again PORTD &= ~(1<<PD2); //CS low for (int i=0; i<=4; i++) { SPI_Senden
-
Thread
Atmega8: DCF77 an ICP1-Pin hängen
//using usart for debugging usart_init(9600); DDRC = _BV(LED); //LED as Output PORTC = _BV(LED); PORTB = (1 << PD0); //pullup widerstand ICP //Enable global interrupt sei(); //start clock startClock(); usart_write("\nDCF 77 Debugger123\n\n"); while
//using usart for debugging usart_init(9600); DDRC = _BV(LED); //LED as Output PORTC = _BV(LED); //Pull-up resistor LED PORTB = (1 << PD0); //Pull-up resistor DCF77 //start clock startClock(); usart_write("\nDCF 77 Debugger123\n\n"); while (1) { LED_ON
-
Thread
Neue 8-Bit Tinys vorgestellt: 417/814/816/817 Gesperrt
0x0400) /* I/O Ports */ #define PORTB (*(PORT_t *) 0x0420) /* I/O Ports */ #define PORTC (*(PORT_t *) 0x0440) /* I/O Ports */ #define ADC0 (*(ADC_t *) 0x0600) /* Analog to Digital Converter */ #define AC0 (*(AC_t *) 0x0670) /* Analog
-
Thread
LED-Matrix 32x16 mit ATMEGA32_ Lauflicht darstellen
#define OUTPUTENABLE_NUMBER PB0 #define TASTER_DDR DDRC #define TASTER_PORT PORTC #define TASTER_NUMBER PC0 #define TASTER_PIN PINC int main(void){ // Alle Ports als Ausgänge konfigurieren. //KANAL_A_DDR &= ~ (1<<KANAL_A_NUMBER); //KANAL_B_DDR
-
Thread
ATmega64: Zugriff DDR_ PORT_ in header files
LED programmiert welches einwandfrei funktioniert: [c] int main(void) { DDRC |= (1<<PC0); PORTC |= (1<<PC0); while (1) { _delay_ms(1000); PORTC ^=(1<<PC0); } } [/c] Versuche ich dieses Programm nun aufzuteilen in: [c] #include "IncFile1.h" int main(void) { void init() while (1) { _delay_ms(1000); PORTC ^=(1<<PC0); } } [/c] und [c] #ifndef INCFILE1_H_ #define INCFILE1_H_ #include <avr/io.h> #include <util/delay.h> void init() { DDRC |= (1<<PC0); PORTC |= (1<<PC0); }
-
Thread
MC reagiert nur auf das erste Bluetooth-Paket
Portc.2 = Output 'LED1 Config Portc.1 = Output 'LED2 Config Portc.0 = Output 'LED3 Dose1 Alias Portc.5 Dose2 Alias Portc.4 Dose3 Alias Portc.3 Led1 Alias Portc.2 Led2 Alias Portc.1 Led3 Alias Portc.0 Piezo Alias Portb.0 Dose1 = 0 Dose2 = 0 Dose3 = 0 Piezo = 0 Sound Piezo , 250 , 400
-
Thread
Globale Varriable
etc. Hat den Vorteil, dass du nicht durcheinanderkommst, wie zum Beispiel bei der Portzuweisung PORTC = a. Portregister C hat nämlich 8 Bits, also ein Byte. Deine Variable a ist vom Datentyp int, also int16_t, was also 16 Bits oder zwei Bytes entspricht. 6.) Übe fleißig und programmiere viel. Verwende
-
Thread
Atmega168P 8Mhz ext. Quarz Output Takt 1:10 ?
#include <avr/io.h> int main(void) { DDRC=0b00111000; while(1) { PORTC=0b00101000; _delay_ms(100); PORTC=0b00111000; _delay_ms(100); } } bei dieser Einstellung hab ich ein Signal von 800ms ON / 800ms OFF am Ausgang ...?
-
Thread
Inbetriebnahme ENC28J60 Radig/RoeBue Arduino nano3
command_setvar}, {"TIME",command_time}, //{"PING", command_ping}, {"PORTB",command_portb}, {"PORTC",command_portc}, {"PORTCSET",command_setPORTC}, [/code] diese Befehle werden wohl über die serielle Schnittstelle gegeben. Bisher habe ich mit HTERM noch keinen großen Effekt festgestellt wenn
-
Thread
Denkfehler? Pointer?
Weise konfiguriere, klappt es?! [c] void SpiMasterInit(*SPI,x,x,x,x); { SPI->PORTC.OUT |= (1<<SPI->MOSI); } [/c]
SPI.PORT = PORTC; So bekommt SPI.PORT den Wert der in PORTC steht. Du musst einen Zeiger auf PORTC nehmen.
-
Thread
AVR INT1 löst bei INT0 aus
sei(); // aktiviert Global Interrupts } ISR(INT0_vect) // ISR für INT0 { PORTC = 0b00001010; } ISR(INT1_vect) // ISR für INT1 { PORTC = 0b00000101; } /******************************************************************/ // main /***************************
Da M. schrieb im Beitrag #4770447: > ISR(INT0_vect) // ISR für INT0 > { > PORTC = 0b00001010; > } > > ISR(INT1_vect) // ISR für INT1 > { > PORTC = 0b00000101; > } Hallo, ich bin nicht unbedingt der Meinung, dass die Taster das ursprüngliche Problem sind..
-
Thread
Lauflicht mit ATmega8 und Assembler
DDRB , r16 cbi DDRC , 0 cbi DDRC , 1 sbi DDRC, 1 ldi r16 , 0b00000001 out PORTC , r16 ;------------------------------------------------------------------------------ mainloop: ;Eingabe getKey: in r24 , PIND sbrc r24 , 2 rjmp getKey ;warten inc r16
mit dem PortD läuft ja auch doch wie bekomme ich mein lauflicht in die andere richtung gedreht mit PortC .... da blicke ich noch nicht durch
-
Thread
AVR und C++ - ein Versuch
Klassen sein? Du verwendest das PORT-Makro in den Klassen-Funktionen und wenn Du jetzt nen Pin von PortC verwenden willst, dann brauchst Du ne neue Klasse. Ja, so macht der Einsatz von C++ wirklich Sinn =:O
Bisher habe ich IO per #define definiert und über inline Funktionen bedient. #define LED3 (PORTC, 3) Schöner wäre natürlich: dInput button1(PORTC,1); dOutput led3(PORTC,3); Ja diese MCUCPP ist sehr schön gemacht. Danke für den Link.
-
Thread
Problem mit ATmega128 / Bascom
runtergezogen. So sieht die Schaltung für alle Relais aus. Bascom Deklaration: [code] Config portc.2=Output Relais4 alias Portc.2 Relais4=0 [/code] Im Mainloop gebe ich nun stetig den Zustand aus: [code] if Relais4 =1 then Print"AD =1" else Print"AD =0" end if [/code
ATmega103 compatibility mode. Thus, if the parts are not programmed before they are put on the PCB, PORTC will be output during first power up, and until the ATmega103 compatibility mode is disabled.
-
Thread
Bitverknüpfung Frage
Leute... Bin grad auf etwas in einem bereits geschriebenen Code gestoßen und da steht folgendes: PORTC ^= 1<<PC5; oder hier von einer Entprellung: i = key_state ^ ~KEY_PIN; Kann mir einer erklären was ^ für eine Verknüpfung ist? Geh ich richtig in der Annahme das heißt sowas wie: UND? Danke
-
Thread
Pin ist Active Low, warum?
include <avr/io.h> #include <util/delay.h> int main(void) { DDRA = 0x0F; DDRC = 0x00; PORTC = 0x01; int x = 0; //LED TEST PORTA = 0x0F; _delay_ms(1000); PORTA = 0x00; while (1) { if (PINC & (1 << 0)) { _delay_ms(200); PORTA |= ((1 << 0) | (1
<2) | (1<<3)); // PA0-PA3: Ausgänge (LEDs) DDRC &= ~(1<<0); // PC0: Eingang PORTC &= ~(1<<0); // PC0: Kein PullUp //LED TEST PORTA |= ((1<<0) | (1<<1) | (1<<2) | (1<<3)); _delay_ms(1000); PORTA &= ~((1<<0) | (1<<1) | (1<<2) | (1<<3)); while (1)
-
Thread
einfachstmögliche Fehlerbehandlung I2C gesucht
I2C Bus resetten dim anzahl_bits as byte Delay_us(800) ClearBit(SSPCON, SSPEN) ClearBit(PORTC, 3) for anzahl_bits = 1 to 9 Delay_us(100) ClearBit(TRISC, 3) Delay_us(100) SetBit(TRISC, 3) next anzahl_bits SetBit(SSPCON, SSPEN) Delay_us(800) result = 0 end
-
Thread
AVR als EPROM benutzen (C-Optimierung)
Tim T. schrieb im Beitrag #4751313: > PORTC = pgm_read_byte(&speicher[(PINB << 8) | PINA]); Was passiert, wenn Du stattdessen > PORTC = pgm_read_byte(&speicher[(PINB << 8) + PINA]); verwendest?
.ORG FIRSTBOOTSTART main: ;1 in ZL,PINA ; 1 in ZH,PINB ; 1 lpm R0,Z ; 3 out PORTC,R0 ; 1 ;2 in ZL,PINA ; 1 in ZH,PINB ; 1 lpm R0,Z ; 3 out PORTC,R0 ; 1 ;3 in ZL,PINA ; 1 in ZH,PINB ; 1 lpm R0,Z ; 3 out PORTC,R0 ; 1 ... ;511 in ZL,PINA
-
Thread
Asuros fahren nicht
(1 << PD7); // Wheel LED OFF DDRC |= (1 << PC0) | (1 << PC1); // Output => no odometrie PORTC |= (1 << PC0) | (1 << PC1); } if (!left) PORTC &= ~(1 << PC1); if (!right) PORTC &= ~(1 << PC0); } /* function to read out line follow phototransistors (left,rigth) */ void LineData(unsigned
-
Thread
C code UART Atmega und Optimierung
case 'C': PORTC |= ( 1 << PB2 ); break; case 'c': PORTC &= ~( 1 << PB2 ); break; case 'D': PORTC |= ( 1 << PB3 ); break; case 'd': PORTC &= ~( 1 << PB3 ); break; case 'E': PORTC |= ( 1 << PB4 ); break; case 'e': PORTC &= ~( 1 << PB4 ); break; case 'F': PORTC |= ( 1 << PB5 ); break; case 'f': PORTC &= ~( 1 << PB5 ); break;
-
Thread
kurzer Denkanstoß zur Pin Ansteuerung per Uart im ATMega
#4740515: > Was wäre eine einfache und simple Comandozeile, mit wenigen Byte? > einschalten: C12C14 -> PortC 2 an, 4 an. > ausschalten: C02C04 -> PortC 2 aus, 4 aus. > > ist doch recht lang wenn es um alle geht. Wenn es um alle geht, könnte man z.B.[pre]einschalten: C1A -> PortC alle ein. > ausschalten
gute Idee, somit also [code] ABCDEF - 6 an - PORTB G00000 - 6 an - PORTB h00000 - 6 aus - PORTC IJKLMN - 6 an - PORTC aJLEbc - PORTB 0b00x1x000 / PORTC 0b00xx1x1x [/code] könnte gehn, versuchmal ein Program zu schreiben... erst mal DANKE ist das mit Hh und Gg nicht unnötige, wenn ich
-
Thread
ATmega328p PC5 als output funktioniert nicht
sieht jetzt so aus: int main(void) { DDRC |= (1 << PC5); DDRC |= (1 << PC2); PORTC |= (1 << PC5); PORTC |= (1 << PC2); while(1) { _delay_ms(500); PORTC &= ~(1 << PC5); PORTC &= ~(1 << PC2); _delay_ms(500); PORTC |= (1 << PC5); PORTC
-
Thread
Fragen zu meinem Batterietester
); // orange led soll leuchten PORTC &= ~(1<<PC2); } else if (voltage <= 1.4) { PORTC |= (1<<PC3); _delay_ms(leddeelay); // rote led soll leuchten PORTC &= ~(1<<PC3); } } [/c]
); // orange led soll leuchten PORTC &= ~(1<<PC2); } else if (voltage <= 1.4) { PORTC |= (1<<PC3); _delay_ms(leddeelay); // rote led soll leuchten PORTC &= ~(1<<PC3); } } } [
-
Thread
LED Fading mit der Soft-PWM hier aus dem Tutorial
änderung die ich in dem Code vorgenommen habe ist Port D auf C zu ändern. [c] #define PWM_PORT PORTC // Port für PWM #define PWM_DDR DDRC // Datenrichtungsregister für PWM [/c] Meine Test LED ist an PortC 0 angeschlossen. Dort funktioniert auch die Heilligkeitseinstellung
};" verändern also die werte in t[0], t[1] und t[2] wären für mich interessant um die LEDs auf PortC 0,1,2 anzusteuern oder? Viele Grüße Tobi
-
Thread
Atmel Studio 7.0 einbinden von avr/io.h klappt nicht
(1 << DDD2) | (1 << DDD3) | (1 << DDD4) | (1 << DDD5) | (1 << DDD6) | (1 << DDD7); PORTC = (1 << DDC6) | (1 << DDC5) | (1 << DDC4) | (1 << DDC3) | (1 << DDC2); // Alle Eingänge am PortC mit PullUp Widerstand schalten TCCR0 = (1<<CS02); // Overflow Interrupt
(1 << DDD2) | (1 << DDD3) | (1 << DDD4) | (1 << DDD5) | (1 << DDD6) | (1 << DDD7); PORTC = (1 << DDC6) | (1 << DDC5) | (1 << DDC4) | (1 << DDC3) | (1 << DDC2); // Alle Eingänge am PortC mit PullUp Widerstand schalten while(1) { PORTD = 0xff; _delay_ms