-
Datei
codeschloss.c
default\lcd-routines.h" /* PORTA 0-3 Tastatur Pin 9-11 PORTA 5-7 DIP Abfrage PORTB 0-7 Tastatur Pin 1-8 PORTC 4-7 LCD Data (pin IO ok) PORTD 0-3 DIP Send PORTD 4 LCD enable PORTA 4 LCD RS PORTD 7 Relais */ //lcd // // Anpassungen im makefile: // ATMega8 => MCU=atmega8 im makefile einstellen // lcd-routines.c
in „LCD AV0820 Ansteuerung nicht möglich, nur flimmernde Kästchen“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
barometer.bas
Config Bcdzahlc = Output 'BCDZahl D Bcdzahld Alias Portb.5 Config Bcdzahld = Output Stelle1 Alias Portc.0 Config Stelle1 = Output Stelle2 Alias Portc.1 Config Stelle2 = Output Cls Do Messergebnis = Getadc(0) Messergebnis = Messergebnis + 200 Waitms 250 Messbcd = Makebcd(messergebnis) Locate 1 , 1 Lcd
in „Barometer mit A/D“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
PinTest.cpp
volatile uint8_t * PinReg_; }; static PortDesc PortB = { &DDRB, &PORTB, &PINB }; static PortDesc PortC = { &DDRC, &PORTC, &PINC }; static PortDesc PortD = { &DDRD, &PORTD, &PIND }; class Pin { public: Pin( const PortDesc& port, uint8_t pin ) : port_( port ), pin_( pin ) {} void toOutput() { *port_.DdrReg
in „C++ auf einem MC, wie geht das?“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
hx8347.c
HX8347A_START_RS) #define LCD_REGISTER (HX8347A_START_ID | HX8347A_START_BS0) #define LCD_RST_DISABLE() (PORTC.OUT &=~ (1<<TFT_RESET)) // Low #define LCD_RST_ENABLE() (PORTC.OUT |= (1<<TFT_RESET)) // High #define LCD_CS_DISABLE() (PORTC.OUT |= (1<<TFT_CS)) // High (end trans) #define LCD_CS_ENABLE() (PORTC.OUT
in „Display mit HX8347A ansteuern“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Master_Produktion_mit_Alarm.bas
Pca9554 = &B01000000 '############################## 1²C Bus ########################## Config Sda = Portc.1 'Pin23 Config Scl = Portc.0 Portc.1 = 1 Portc.0 = 1 I2cinit Waitms 200 '###################################################################### '###################################################
in „PCA 9554AD Ansteuerprobleme“ · Mikrocontroller und Digitale Elektronik ·
-
PDF
Timer_Erklaerung_Netz.pdf
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 } /
in „Berechnung Zeit/Frequenz beim Prescaler/Timer“ · Mikrocontroller und Digitale Elektronik ·
-
PDF
Timer_Erklaerung_Netz.pdf
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 } /
in „Berechnung Zeit/Frequenz beim Prescaler/Timer“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
firstc.txt
*********************************************/ void LED(void) // Unterprogramm (Funktion) "LED" { PORTC = 0x10; // Setzte PORTB,0 Delay10KTCYx(1000); // Verzögerung --> Damit 1 Tasterdruck nicht ein/aus schaltet while(PORTB == alfa) // Verharre hier solange, wie PORTA = 0 ist { } return; // Danach kehre
in „Erstes Programm in C (PIC18F2550)“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
test1.cc
-------- void init() { // Ports initialisieren sbi(DDRB,0); // PORTB0 auf Ausgang cbi(DDRC,0); // PORTC0 auf Eingang ohne PullUp cbi(DDRC,1); // PORTC1 auf Eingang ohne PullUp ADMUX=0xE0; // Port, Referenzspannung und Auflösung ADCSRA=0xED; // Modus, Interrupt und Start //--- Interrupts erlauben ---
in „Analoge Eingänge“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Forum1.asm
_______________ ;************ Spiegeln der PortA bis PortD auf die Virtual Ports ldi Temp1, $32 ; Portc und Portd über das Virtual Register configurieren sts PORTCFG_VPCTRLB, Temp1 ldi Temp1, 0b11111111 ; Lade Temp1 mit Binärzahl 0b......... out DDRC, Temp1 ; Alle BitŽs von PortC sind Ausgänge ldi temp1,0b00000001
in „XMega PWM kommt nicht am Portpin an“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
uart.c
void usart0_putc(char c) { UDR0 = c; } void usart1_putc(char c) { UDR1 = c; } ISR(USART0_RXC_vect) { PORTC = UDR0; } ISR(USART1_RXC_vect) { PORTC = UDR1; } void send(void) { usart0_putc('B'); usart0_putc('D'); usart0_putc('0'); usart1_putc('B'); usart1_putc('D'); usart1_putc('0'); } int main(void) { DDRC
in „C-Code mit AVR-Studio-Simulator debuggen möglich?“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
avrlcd.txt
Eingang */ PORTD |= 0x0f; /* Pull Up von PIN D0 aktivieren */ uint8_t Tasten = 0x0F; DDRC = 0xFF; PORTC = 0xFF; /* LCD INIT*/ DDRD = 0xF0; // PD4:7 digital outputs lcd_initialize(LCD_FUNCTION_8x2, LCD_CMD_ENTRY_INC, LCD_CMD_ON); int i; while(1) { Tasten = (PIND & 0x0F); lcd_move_cursor(LCD_LINE_1,0);
in „AVR LCD Display Menü (Pfeil)“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
main.c
TCCR1B |= (1<<WGM12)|(1<<CS11)|(1<<CS10); sei(); for(;;) { if( (Drehzahl >3000)&&(Drehzahl <6000) ) { PORTC |= (1<<PC6); } else { PORTC &= ~(1<<PC6); } } return 0; } ISR(TIMER1_CAPT_vect) { Zaehler[1] = ICR1; abs_Zaehler = ( (Zaehler[1] - Zaehler[0])+((Ueberlauf-Ueberlauf_alt)*11520) ); Ueberlauf_alt = Ueberlauf
in „Periodendauer“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
uart.c
UDRE); //warten bis Datenregister frei UDR = help; //wenn frei, dann Daten nach Sendedatenregister PORTC = help; //-->Kontrollausgabe //hier meine switch (help) // case 1.... anweisung } void init(void) { UBRR = 51; //Baudrate einstellen UCR|=(1<<RXEN); //Empfänger ein UCR|=(1<<TXEN); //Sender ein UCR
in „über uart string empfangen und auswerten!“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
RS232_receive.asm
; empfangenes Byte mit '1' vergleichen brne int_rxc_1 ; wenn nicht gleich, dann zu int_rcx_1 sbi PORTC, 0 ; LED einschalten rjmp int_rxc_2 ; Zu int_rxc_2 springen int_rxc_1: cpi temp, '0' ; empfangenes Byte mit '0' vergleichen brne int_rxc_2 ; wenn nicht gleich, dann zu int_rcx_2 cbi PORTC, 0 ; LED
-
Datei
NixieUhr_dcf77_gcc_1.c
/*ca.: 1000 ms Warten*/ PORTA=0x05;/*einige Ausgänge setzten*/ wait(2000);/*ca.: 2000 ms Warten*/ PORTC=0x05;/*einige Ausgänge setzten*/ wait(3000);/*ca.: 3000 ms Warten*/ PORTD=0x05;/*einige Ausgänge setzten*/ wait(4000);/*ca.: 4000 ms Warten*/ PORTA=0x01;/*einige Ausgänge setzten*/ wait(5000);/*ca.: 5000 ms Warten*/ PORTC=0x02;/*einige Ausgänge setzten*/ wait(6000);/*ca.: 6000 ms Warten*/ PORTD=0x01;/*einige Ausgänge setzten*/ wait(7000);/*ca.: 7000 ms Warten*/ return 0; } void wait(int x) { y = x/60;/*Eingegebenen
-
Datei
main.c
Globale Variablen volatile uint8_t flag; int main(void) { // Initialisierung PORTB = 0; DDRB = 0xFF; PORTC = 0; DDRC = 0xFF; PORTD = 0; DDRD = 0xFF; TIMSK0 = (1<<OCIE0A); // Timer0 CompareA Interrupt ein OCR0A = 249; // Comp-Register A --> 250 TCCR0A = 0x02; // Mode 2 CTC TCCR0B = 0x03; // Timer0 starten
in „Mal wieder: LCD will nicht (Atmega, GCC)“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
UartTest.c
int main(void) { uint8_t i; InitClock(); PORTF.DIR = 0xff; // Port F als Ausgang PORTF.OUT = 0xff; PORTC.DIRSET = PIN3_bm; PORTC.DIRCLR = PIN2_bm; USARTC0.CTRLA = 0b00001000; USARTC0.CTRLB = 0b00011001; USARTC0.CTRLC = 0b00000011; USARTC0.BAUDCTRLA = F_CPU/((16*9600)-1); USARTC0.BAUDCTRLB = 0; while(1
in „XMega UART: Probleme bei der Ausgabe“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
r4m0n_timer.c
sekunden_aktuell; uint8_t sekunden_start; int main (void) { DDRC |= (1 << PC5); // Set LED as output PORTC |= (1 << PC5); // Toggle the LED off DDRD |= (1 << PD2); PORTD |= (0 << PD2); // Set CTC compare value to 1Hz at 1MHz AVR clock,with a prescaler of 64 TCCR1B |= (1 << WGM12); // Configure timer 1 for
in „2x mal Button soll interrupt auslösen hilfe :/“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
nixie.txt
über PortB ' *************** Routine zur Ausgabe im std10 Temp = Temp And $f0 Temp = Temp + Wert4 Portc = Temp 'Ausgabe BCD Wert an SN74141 über PortC Return
in „Bascom Port Nibble Nixie“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
tempsensor3.c
t send_data(uint16_t data) { uint8_t i; for (i=0; i<7; ++i) { if (data | 0x01) { //PORTB |= 0x01; PORTC |= 0x01; } else { //PORTB &= 0xFE; PORTC &= 0xFE; } data >>= 1; _delay_ms(10); } return 0; } uint16_t Adcaktivate(uint8_t mux) { ADCSRA = (1<<ADEN) | (1<<ADPS2) | (1<<ADPS0); ADMUX = mux; ADMUX |=
in „ADC-Wandlungs-Ergebnis als Bitfolge an einem Port ausgeben“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
tog_2560.c
12.000Mhz #include <iom8v.h> #include <macros.h> void port_init(void) { PORTB = 0x00; DDRB = 0x00; PORTC = 0x00; //m103 output only DDRC = 0x01; PORTD = 0x00; DDRD = 0x00; } //TIMER0 initialize - prescale:64 // desired value: 1280uSec // actual value: 1280,000uSec (0,0%) void timer0_init(void) { TCCR0
in „ATMega8 Rechtecksignal“ · Analoge Elektronik und Schaltungstechnik ·
-
Datei
main.c
Richtungsregister des Ports C auf 0x20 // 0x20 = 0b100000 (Ausgang) DDRC=0b100000; while(1) { // LED aus PORTC=0b100000; // UART-Ausgabe uart_puts("Hello World\r\n"); // LED an PORTC=0b000000; delay(); } return 0; }
in „UART (RS232) klappt nicht“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Kickersteuerung_V2__Prototyp_.bas
Output Led7 Alias Porta.6 Config Led7 = Output Led8 Alias Porta.7 Config Led8 = Output Led9 Alias Portc.7 Config Led9 = Output Led10 Alias Portc.6 Config Led10 = Output Taster1 Alias Pinc.5 Config Taster1 = Input Dim X As Byte Do X = 0 If Taster1 = 1 Then X = X + 1 End If If X = 0 Then Led1 = 0 Led2
in „LED - Kickersteuerung“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Conrad_DCF77_Mega8a.bas
16 * 2 Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.3 , Db6 = Portb.2 , Db7 = Portb.1 , E = Portc.0 , Rs = Portc.2 Initlcd Cls Cursor Off Config Dcf77 = Pind.5 , Timer = 1 Config Date = Dmy , Separator = . Enable Interrupts Do If Dcf_status.7 = 1 Then Locate 2 , 1 : Lcd "*" Else Locate 2 , 1 :
in „Suche dringend jemanden mit Bascom Vollversion“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Pasenanschnit_05.txt
signal.h> #include <avr/interrupt.h> #define TCNT0_START 253 #define TCNT0_START2 0xB8 #define PC0_EIN (PORTC &=~(1<<PC0)) #define PC0_AUS (PORTC |= (1<<PC0)) #define FREQUENZ_2 (PINC & (1<<PC2)) #define PA0_EIN (PORTA &=~(1<<PA0)) #define PA0_AUS (PORTA |= (1<<PA0)) #define PA1_EIN (PORTA &=~(1<<PA1)) #define
in „Phasenanschnitt“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
x1.bas
Porth.3 , Db7 = Porth.4 , E = Porth.6 , Rs = Porth.5 Config Porta = Output ' weil unbenutzt Config Portc = Output Config Porte.4 = Output Config Porte.5 = Output Config Pinb.5 = Input ' Schaltuhr Set Porte.4 Set Porte.5 Porta = 0 Portc = 0 Declare Sub Test Declare Sub Test2 Dim N As Byte Set Portb.5 '
in „BASCOM AVR Bedeutung“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
LCD.ASM
PD1 .equ RS = PD2 ;RS an Pin PD2 ;.equ LCD_cntr = PORTD ;PORTD ist Kontroll-Port ;.equ LCD_data = PORTC ;PORTB ist Daten-Port .equ BF = PC7 ;Busy flag ;LCD Befehle .equ clear_LCD = 0b00000001 ;loesche Anzeige .equ home_LCD = 0b00000010 ;return home .equ set_LCD = 0b00111000 ;8 bits,2 Zeilen,5x7dots .
in „LCD-Befehl Problem“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Testprogramm.c
) RA4 = TOCKI (Eingang externer Takt = 3,2768 MHz) RA5 = Summer RA0 - RA4 = Eingang RA5 = Ausgang PORTC: RC0 = 7-Segmentanzeige Stunden - ZEHNER = LATC = 0x3E; RC1 = 7-Segmentanzeige Stunden - EINER = LATC = 0x3D; RC2 = 7-Segmentanzeige Minuten - ZEHNER = LATC = 0x3B; RC3 = 7-Segmentanzeige Minuten -
in „PIC18F2520 Interruptroutine fehlerhaft?“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Testprogramm.c
) RA4 = TOCKI (Eingang externer Takt = 3,2768 MHz) RA5 = Summer RA0 - RA4 = Eingang RA5 = Ausgang PORTC: RC0 = 7-Segmentanzeige Stunden - ZEHNER = LATC = 0x3E; RC1 = 7-Segmentanzeige Stunden - EINER = LATC = 0x3D; RC2 = 7-Segmentanzeige Minuten - ZEHNER = LATC = 0x3B; RC3 = 7-Segmentanzeige Minuten -
in „PIC18F2520 Interruptroutine fehlerhaft?“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
main.c
(SLEEP_MODE_IDLE); sleep_mode(); // Timer0 Interrupt is triggered if(flag == 1 ) { flag = 0; PORTC = 0x00; // to count to 3 only 2 bits are needed displayClk &= ~(0b11111100); scanRotaryEncoder(); // The scan has matched a movement if(enc_delta != 0) { // depending on enc_delta increment/decrement
in „AVR - Drehgeber auslesen - optimiert für präzise Benutzereingaben“ · Projekte & Code ·
-
Datei
hello_world.c
PB2)|(1<<PB1)); DDRC&=~((1<<PC0)|(1<<PC1)|(1<<PC3)|(1<<PC4));//adcpins als eingang DDRC|=(1<<PC5); PORTC|=(1<<PC5); /******************PWM*******************/ ICR1=0x9C40; // -> 20ms Periodendauer (Topwert, ab da wieder auf 0) vorher 7fff TCCR1A |= ((1<<COM1A1) | (1<<COM1B1)); //Bei Wert ICR1 auf 1 und
in „zwei ADC zeigen dasselbe an“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
m16M1def.inc
Pins bit 5 .equ PINB6 = 6 ; Port B Input Pins bit 6 .equ PINB7 = 7 ; Port B Input Pins bit 7 ; ***** PORTC ************************ ; PORTC - Port C Data Register .equ PORTC0 = 0 ; Port C Data Register bit 0 .equ PC0 = 0 ; For compatibility .equ PORTC1 = 1 ; Port C Data Register bit 1 .equ PC1 = 1 ; For compatibility .equ PORTC2 = 2 ; Port C Data Register bit 2 .equ PC2 = 2 ; For compatibility .equ PORTC3 = 3 ; Port C Data Register bit 3 .equ PC3 = 3 ; For compatibility .equ PORTC4 = 4 ; Port C Data Register bit 4 .equ PC4
-
Datei
soft_pwm.c
8000000UL #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #define LCD_BG_OFF PORTC |= (1<<PC1) //High PIN 1 Port C #define LCD_BG_ON PORTC &= ~(1<<PC1) //Low PIN 1 Port C volatile unsigned char pwm_count=0, pwm=0; /********************* Timer 0 Interrupt *********************/ ISR
in „Software PWM mit Atmega8 funktioniert nicht“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
main.c
#include <util/delay.h> // globale Variablen volatile uint8_t flag; int main(void) { DDRC = 0xFF; PORTC = 0x00; // Led aus int i; //PWM TIMSK = (1<<OCIE1A); //Enable timer/counter1, output compare A match interrupt TCCR1A = 0x00; // datenblatt S. 95ff CTC-mode aktivieren TCCR1B = (1<<WGM12); // datenblatt
in „PWM funktioniert nicht“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
main.c
(UDR == "D") { /* Wenn Daten == "D" --> LOGIN */ LOGIN(); } else{ /* Daten an IR-Port ausgeben */ PORTC0 = UDR; } } void LOGIN () { /* IR-Ausgang Ausschalten */ PORTC0 = 0; /* Auf Rechner-Login warten */ USART_empfangen (); /* Logindaten vergleichen */ if (UDR == "L") { /* Wenn Logindaten = korrekt -
in „C-Prog. (ATmega16) für IR-Sender“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
uart.test.asm
) out UCSRC, temp sbi UCSRB,TXEN ; TX aktivieren ldi temp, 0xff out DDRC, temp ldi temp, 0x00 out PORTC, temp sbi PORTC, 0 loop: ldi zeichen, 'T' rcall serout ; Unterprogramm aufrufen ldi zeichen, 'e' rcall serout ; Unterprogramm aufrufen ldi zeichen, 's' rcall serout ; ... ldi zeichen, 't' rcall serout
in „UART + Fehler + ATMEGA32“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Leistungsteil.bas
Portb.2 ' Anfangswerte '************** Set Portd.4 Reset Portd.5 Reset Portd.6 Reset Portd.7 Set Portc.3 Set En_poti Reset Send_wert ' Hauptprogramm '*************** Do If Send_wert = 1 Then If Wert = 1 Then If Portd.4 = 1 Then Reset Portd.4 Else Set Portd.4 End If Toggle Portc.3 ' Toggle Portd.5 '
in „Pin rücksetzen nicht möglich“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
WordClock.asm
out SPL, tmp ldi tmp, 0b10000000;8Mhz OSC sts CLKPR, tmp ; rcall rc5_ir_init ; ; sbi DDRC, 2 sbi PORTC, 2 sbi DDRC, 3 sbi PORTC, 3;TestLeds an sbi DDRB, 0 sbi PORTB, 0 sbi DDRD, 7 sbi PORTD, 7 ; loop: rjmp loop;Endlosschleife ; ; ; .include "WC-RC5-IR.asm"
in „ASM: Timer1 Comparebertrieb arbeitet falsch“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
main1.c
ac interrupt ACSR |= (1<<ACIE); //set AIN1 & AIN0 as input DDRE &= ~((1<<PE3) | (1<<PE2) ); //set PORTC as output for LED DDRC = 255; } SIGNAL(SIG_COMPARATOR) { PORTC ^= led; } int main(void) { init(); while(1) {} return (0); }
in „avr128 komparator“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
usart_txd.c
void serial_read(uint64_t x) { uint8_t tmp; PORTC|=(1<<2); // Sender aktiv ct_tx_isr=0; for (uint8_t i=0; i < 8; i++) { while(!(UCSR0A & (1<<UDRE0)); tmp = (x >> 56); serial_char(tmp); x <<= 8; } UCSR0A |= (1<<TXC0); // TCX0 löschen! Daten senden läuft noch while(!(UCSR0A & (1<<TXC0))); PORTC &= ~(1<<2); // Sender inaktiv status_0tx_1rx = 1; while (status_0tx_1rx) { if ( (UCSR0A & (1<<RXC0)) ) { // Zeichen wurde empfangen, jetzt abholen uint8_t c; c = uart_getc(); // hier etwas mit c machen
in „USART tx-timing Problem“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
ADXL345_I2C.h
ADXL345_I2C_H_ #define ADXL345_I2C_H_ #include <avr/io.h> #include <util/delay.h> #define SCLPORT PORTC //TAKE PORTD as SCL OUTPUT WRITE #define SCLDDR DDRC //TAKE DDRB as SCL INPUT/OUTPUT configure #define SDAPORT PORTC //TAKE PORTD as SDA OUTPUT WRITE #define SDADDR DDRC //TAKE PORTD as SDA INPUT configure
in „ATMEGA88A/Beschleunigungssensor (ADXL345)“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
ADXL345_I2C.h
ADXL345_I2C_H_ #define ADXL345_I2C_H_ #include <avr/io.h> #include <util/delay.h> #define SCLPORT PORTC //TAKE PORTD as SCL OUTPUT WRITE #define SCLDDR DDRC //TAKE DDRB as SCL INPUT/OUTPUT configure #define SDAPORT PORTC //TAKE PORTD as SDA OUTPUT WRITE #define SDADDR DDRC //TAKE PORTD as SDA INPUT configure
in „I2C-Bibliothek für ATMEGA88A“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
main.c
Globale Variablen volatile uint8_t flag; int main(void) { // Initialisierung PORTB = 0; DDRB = 0xFF; PORTC = 0; DDRC = 0xFF; PORTD = 0; DDRD = 0xFF; TIMSK0 = (1<<OCIE0A); // Timer0 CompareA Interrupt ein OCR0A = 249; // Comp-Register A --> 250 TCCR0A = 0x02; // Mode 2 CTC TCCR0B = 0x03; // Timer0 starten
in „Mal wieder: LCD will nicht (Atmega, GCC)“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
LED_display_no_interrupt.h
position to display void digit (uint8_t value, uint8_t pin) { PORTD = numbers[value]; // number output PORTC &= ~(1 << pin); // Low = current digit on } // distribute number to digits void number_output (uint16_t number) { Digit_X000 = number/1000; number %= 1000; Digit_0X00 = number/100; number %= 100; Digit_00X0 = number/10; number %= 10; Digit_000X = number; } void refresh() { PORTC = 0b00001111; // Digits off if(active_digit == 0) digit (Digit_000X, PC0); if(active_digit == 1) digit (Digit_00X0, PC1); if(active_digit == 2) digit (Digit_0X00, PC2); if(active_digit == 3) digit
in „uhrenquelcode“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
PPS5330_V15a.c
(1<<Down); // Key "->" DDRD |= (1<<PIN6); // FAN PWM out PORTB |= (1<<ADC_ADW); // Pullup enabled PORTC |= (1<<UI); // Pullup UI switch PORTD |= (1<<PIN0); // Pullup Regler PORTD |= (1<<PIN1); // Pullup Key "Regler" PORTC |= (1<<PIN3); // Pullup Key Standby PORTC |= (1<<PIN5); // Pullup Key "Memory" PORTC |= (1<<PIN4); // Pullup Key "Enter" PORTD |= (1<<Enc_A); // Pullup Encoder Pin A PORTD |= (1<<Enc_B); // Pullup Encoder Pin B PORTC |= (1<<Up); // Pullup Key "<--" PORTC |= (1<<Down); // Pullup Key
in „PPS5330 Labor-Netzteil hack“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Atmel8515.txt
HIGH(UBRRVAL) ;Baudrate einstellen out UBRRH, temp ldi temp,0xFF out DDRC, temp ;Datenrichtung von PortC Ausgang ;ldi temp, (1<<RXEN)|(1<<TXEN);TX aktivieren ldi temp, (1<<RXEN) out UCSRB,temp ldi temp, (1<<URSEL)|(1<<USBS)|(3<<UCSZ0) out UCSRC, temp sei ;********************* Hauptprogramm **********
in „Warum empfängt mein Uart nichts?“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
test.asm
HIGH(UBRRVAL) ;Baudrate einstellen out UBRRH, temp ldi temp,0xFF out DDRC, temp ;Datenrichtung von PortC Ausgang ;ldi temp, (1<<RXEN)|(1<<TXEN);TX aktivieren ldi temp, (1<<RXEN)|(1<<RXCIE) out UCSRB,temp ldi temp, (1<<URSEL)|(1<<USBS)|(3<<UCSZ0) out UCSRC, temp sei ;********************* Hauptprogramm
in „Problem mit AtMega8 Uart Receive“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
lightshow.asm
temp1 kopieren out portb, temp1 ;an portb ausgeben adiw ZL, 1 ;zpointer erhöhen lpm ;das ganze für portc... tst r0 breq neu mov temp2, r0 out portc, temp2 adiw ZL, 1 delay: ldi temp1, 0x34 WGLOOP0: ldi temp2, 0xff WGLOOP1: dec temp2 brne WGLOOP1 dec temp1 brne WGLOOP0 rjmp loop daten: .db 0b11110110 .
in „Daten aus Flash lesen“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
EasyADC.c
============================= WICHTIG: (1) Vor dem Compilieren, Optimization auf -Os stellen! (2) PORTC.0 mit einem Potentiometer verbinden (oder einer variablen Spannungsquelle von 0 bis 5V). PORTC.0 ist der Analoge Messkanal 0 und wird in diesem Beispiel fortlaufend ausgewertet (0V = 0, 5V = 255) (
in „Fehlerhafte Übertragung Atmega16 RS 232 -> PC“ · Mikrocontroller und Digitale Elektronik ·