-
Datei
Test_Mein_LCD.asm
lcd_clear ; Display löschen rcall lcd_clear1 ; Display löschen rcall T1 loop: ldi r16, 0b01010101 out PORTC, r16 ldi r16, 0b10101010 out PORTB, r16 sbic PINA, 0 ; "skip if bit cleared", nächsten Befehl überspringen, ; wenn Bit 0 im IO-Register PIND =0 (Taste 0 gedrückt) rjmp loop ; Sprung zu "loop:" -> Endlosschleife ldi r16, 0b10101010 out PORTC, r16 ldi r16, 0b01010101 out PORTB, r16 ;sbi PORTB, 3 ; Bit 3 im IO-Register PORTB auf 1 setzen -> 4. LED an rcall T2 ende: rjmp ende ; .include "lcd_routines_new.asm" .include "menues.asm"
in „Atmega32 startet nach 10 Sekunden ungewollt neu“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
test.c
10000000UL /***************************/ // Port void Port_Init() { DDRC|=(1<<PC5); } #define Port_Hi PORTC|=(1<<PC5) #define Port_Lo PORTC&=~(1<<PC5) /***************************/ //Timer 0 8-Bit void Timer_0_Init(void) //Fast-PWM { TCCR0A|=(1<<COM0A1); //Clear OCR0A on Compare Match TCCR0A|=(1<<WGM01)|
in „ADC will nicht so recht“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
lcd-eigen.c
lcd_befehl (0x01); _delay_ms (100); lcd_befehl (0x06); lcd_leeren(); } void main(void) { DDRC = 0x30; PORTC|= _BV(PC5); lcd_init(); PORTC|= _BV(PC4); while (1) { } }
in „Init Problem mit KS0066 (Conrad)“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Master.c
///////////////////////////////////////////////////////////////////////////////// void Fehler() { PORTC |=(1<<PC5); } void Hard() { TWBR = 32; //100kHz DDRC |=(1 << PC5);//LED DDRB &=~(1 << PB1); //Taster } uint8_t TWI (uint8_t Data, uint8_t SLA_W) { ///////////////////////////////STARTBEDINGUNG/////
in „Frage zum TWI“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
i2c.ino
#include "i2c.h" #include <util/twi.h> #include <util/delay.h> void init_i2c() { PORTC &= ~(1 << 4); PORTC &= ~(1 << 5); TWSR = 0;//(1 << TWPS0); TWBR = ((F_CPU/SCL_CLOCK)-16)/2;//I2C_PRESCALER; TWCR = (1 << TWEN); } void start_i2c() { TWCR = (1 << TWINT) | (1 << TWSTA) | (1 << TWEN)
in „Atmega328P I2C - kein Ack vom Slave“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
I2C.c
TWINT) | (1<<TWSTO) | (1<<TWEN); while(!(TWCR & (1 << TWSTO))); lcd_put_d(0); } int main (void) { PORTC |= _BV(PC4); //Enable Pullup PORTC |= _BV(PC5); //Enable Pullup lcd_init(LCD_DISP_ON); lcd_clrscr(); lcd_home(); i2c_init(); lcd_put_d(i2c_send_start(pcf_adress)); i2c_send(); i2c_stop(); return 0;
in „PCF8574 über I2C“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
ganganzeige.c
endasm #include <lcd.h> void main(void) { PORTB=0x00; DDRB=0x02; // PORTB als Eingang (PB1 = Ausgang) PORTC=0x00; DDRC=0x00; // PORTC als Eingang PORTD=0x00; DDRD=0xFF; // Port D als Ausgang TCNT0=0x80; // Timer0 Register Wert TCCR1A=0xC0; TCCR1B=0x10; TCNT1H=0x00; // Timer 1 High Byte TCNT1L=0x00; // Timer
in „Syntax errors / Prog. aus CodeVision“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
ganganzeige.c
void) { float freq; unsigned int a,b; PORTB=0x00; DDRB=0x02; // PORTB als Eingang (PB1 = Ausgang) PORTC=0x00; DDRC=0x00; // PORTC als Eingang PORTD=0x00; DDRD=0xFF; // Port D als Ausgang TCNT0=0x80; // Timer0 Register Wert TCCR1A=0xC0; TCCR1B=0x10; TCNT1H=0x00; // Timer 1 High Byte TCNT1L=0x00; // Timer
in „Syntax errors / Prog. aus CodeVision“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Ton.bas
Cls Cursor Off Upperline Lcd " 5-Ton Erzeuger " Config Portb = Output Config Pinc.1 = Input Config Portc.0 = Output Config Timer1 = Timer , Prescale = 1 Dim Ton(11) As Long Dim Folge_string As String * 5 Dim Folge As Long Dim Ziffer(11) As String * 1 Dim X1 As Byte , X2 As Byte , Y As String * 1 Dim Z As Byte Piepser Alias Portc.0 Folge = 78395 Folge_string = Str(folge) Y = "" Z = 0 On Timer1 Timer_irq Restore Vorgabe For X1 = 1 To 11 Read Ton(x1) Next Restore Zeichen For X1 = 1 To 11 Read Ziffer(x1) Next Do Lowerline Lcd
in „Jtag abschalten“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
RFM02.c
{ uint8_t n=8; while(n--) { while(!(PINC & (1<<PINC5))); while(PINC & (1<<PINC5)); if(DATA&0x80) PORTC |= (1<<PC4); else PORTC &= ~(1<<PC4); DATA=DATA<<1; } } //*************************************************** int main (void) { DDRC |= (1<<PC4); SPI_init(); SPI_tx(0xCC00); SPI_tx(0x8B81); SPI_tx(
in „Datenübertragung mit Funkmodul RFM01-RFM02“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
EEprom_Karte.txt
Off Noblink '------------------------------------------------------------------------- Config Sda = Portc.4 Config Scl = Portc.5 Const Addressw = 160 'slave write address Const Addressr = 161 Dim X As Byte Dim A As Byte Dim B As Byte Dim Lesen As Byte Cls '---- schreibe in EEprom ---- X = 10 '1 bis Überlauf
in „Countdown Timer EEprom“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
EEprom_Karte.txt
Off Noblink '------------------------------------------------------------------------- Config Sda = Portc.4 Config Scl = Portc.5 Const Addressw = 160 'slave write address Const Addressr = 161 Dim X As Byte Dim A As Byte Dim B As Byte Dim Lesen As Byte Cls '---- schreibe in EEprom ---- X = 10 '1 bis Überlauf
in „I2C Chipkarte EEprom Lesen/Schreiben“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
modulation.c
if(PINB & 0x02) { OCR0A = 0x42; } else { OCR0A = 0x9C; } } return 0; } ISR( TIMER1_CAPT_vect ) { PORTC = 0x00; TCNT0 = 0x00; //Output Compare Match A Interrupt Enable TIMSK0 |= (1<<OCIE0A); } ISR ( TIMER0_COMPA_vect ) { PORTC = 0xFF; //Output Compare Match A Interrupt Disable TIMSK0 |= (0<<OCIE0A);
in „Modulation der Impulsweite einer eingelesenen Frequenz“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
test_simple_isr.c
0b10000011, 0b10010011}; uint8_t timer_counter = 0; uint8_t number = 0; ISR(TIMER0_COMPA_vect) { PORTC = PC_Bitmaske[number]; // 7 Segmentanzeige des Zählwerts (Ziffer) PORTD = PD_Bitmaske[number]; timer_counter++; // Softwareteiler für langsameres Zählen if (timer_counter == 100) { timer_counter =
in „interrupt nutzen“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
main.txt
Buffer[20]; switch (status) { case SENSOR_EIN: //Temperaturmessung wird gestartet DDRC |= (1<<PC0); PORTC |= (1<<PC0); status=WARTEN; warteSeit=milliseconds(); break; case WARTEN: if (milliseconds()-warteSeit >= 10) { status=MESSEN; } break; case MESSEN: grad=messen(); //Messwergebnis vom ADC1 wird übergeben
in „AVR 328P, Temperatur, Uhrzeit am OLED Display ausgeben“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Einfache_Uhr.c
//{{WIZARD_MAP(I/O Ports) // PortA PORTA = 0x0; DDRA = 0x0; // PortB PORTB = 0x0; DDRB = 0x0; // PortC PORTC = 0x0; DDRC = 0x0; // PortD PORTD = 0x0; DDRD = 0x0; //}}WIZARD_MAP(I/O Ports) //{{WIZARD_MAP(Watchdog) // Watchdog Disabled wdt_disable(); //}}WIZARD_MAP(Watchdog) //{{WIZARD_MAP(Analog Comparator
in „String-Formatierung für LCD Anzeige“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Text02.c
Warteschleife 4,1 mSec. PORTA |= (1<<6); // RS BIT=1 => Daten } void dsp_char_out (uint8_t dsp_char_out) { PORTC = dsp_char_out; uint16_t i; for (i=0; i<1000; i++); PORTA |= (1<<5); // Enable High PORTA &= ~(1<<5); // Enable Low } void LCD_puts (const char *lcd_string) { while (*lcd_string) { dsp_char_out (*lcd_string
in „Wie mache ich eine Textausgabe 8Bit auf Display?“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
test.asm
über das Datenrichtungsregister ldi temp,0b00000000 ; (alle Ausgänge setzen für Versuchszwecke) out portc,temp ldi temp,0b11111111 ; Port A als 8 Bit Ausgang definieren - out ddra,temp ; - über das Datenrichtungsregister ldi temp,0b00000000 ; (alle Bänke setzen für Versuchszwecke) out porta,temp ldi temp
in „Timer im ATmega162 funktioniert nicht“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
lcd-eigen.c
DDRB #define PIN_RS PB6 #define PIN_E PB7 #define CURSOR_HOME 0x02 void led (unsigned char wert) { PORTC|= _BV(wert); _delay_ms (100); PORTC|= _BV(wert); } void lcd_ein (void) { S_PORT |= (1<<PIN_E); _delay_us (50); S_PORT &= ~(1<<PIN_E); led(PC5); } void lcd_befehl(unsigned char wert) { S_PORT &= ~(1
in „Init Problem mit KS0066 (Conrad)“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
defines.h
DEFINES_H_ #define Port_relais1_8 PORTA // PORTA is defined as Port_relais1_8 #define Port_relais9_15 PORTC // PORTC is defined as Port_relais9_15 #define relais1 PA0 // Pin PA0 is defined as relais1 #define relais2 PA1 // Pin PA1 is defined as relais2 #define relais3 PA2 // Pin PA2 is defined as relais3
in „Pinproblem ATmega164A“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
AssemblerApplication3.asm
;**************************************** ;*Lauflicht der LED's an PORTC * ;*alle 7 Durchgänge ein richtungswechsel* ;*so dass eine LED immer von 0-7 dann * ;*von 7-0 wandert. * ;*Taster an PortD0 soll zusätzlichen * ;*Richtungswechsel herbeiführen, * ;*bevor Indexzähler
in „Probleme beim Einlesen eines Ports“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
uart.c
OCR1A=0x2400; //every 20ms TCCR1B|=(1 << WGM12) | (1 << CS11); DDRC &= ~(1 << 0); DDRC &= ~(1 << 5); PORTC |= (1 <<0); PORTC |= (1 <<5); UCSRB = (1 << RXEN) | (1 << TXEN); UCSRC = (1 << URSEL) | (1 << UCSZ1) | (1 << UCSZ0); UBRRH = 0; //(uint8_t)(UART_UBRR_CALC(UART_BAUD_RATE,F_CPU)>>8); UBRRL = 11; //(
in „einfache compare match frage“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
main.asm
konfigurieren SBI DDRD,2 ;Ausgang der Kontrastspannung konfigurieren SBI DDRC,4 ; C4 auf Ausgang CBI PORTC,4; C4 anschalten CBI DDRC,5 ; C5 auad Eingang SBI PORTC,5 ;Pullup anschalten ;+------------------------------- ;+------------------------------- ;I Hauptprogramm main: LDI r16, PINC ANDI r16,0b00100000
in „Schalten eines Tasters“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
leds_887.c
define MASK7 ( 1 << 7 ) // Port C #define PC0_output_init() ( TRISC &= ~MASK0 ) #define PC0_set() ( PORTC |= MASK0 ) #define PC0_clr() ( PORTC &= ~MASK0 ) // ---------------------------------------------- #define led_init() PC0_output_init() #define led_set() PC0_set() #define led_clr() PC0_clr() uint8
in „SDCC & PIC16F“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
main.c
(1) { Mittelwert = ADC_Routine (1); // Parameterübergabe zur ADC-Kanalauswahl if (Mittelwert > 0) PORTC |= _BV(PC3); else PORTC &= ~_BV(PC3); if (Mittelwert > 26) PORTD |= _BV(PD0); else PORTD &= ~_BV(PD0); if (Mittelwert > 52) PORTD |= _BV(PD1); else PORTD &= ~_BV(PD1); if (Mittelwert > 77) PORTD |=
in „C: Problem bei der Parameterübergabe / ADC-Mittelwert“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
main.c
uart_puts(buf); uart_puts_P("\r\n"); } /* IRMP_DATA irmp_data; DDRC &= ~(1<<0); DDRC |= (1<<2) | (1<<3); PORTC |= (1<<2); PORTC &= ~(1<<3); DDRB |= (1<<5); irmp_init(); uart_init(UART_BAUD_SELECT(9600, F_CPU)); OCR1A = (F_CPU / F_INTERRUPTS) - 1; // 16MHz/20000 => 800 TCCR1B = (1<<WGM12) | (1<<CS10); // prescaler
in „Frequenz von IR-Fernbedienung?“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
anzeige_lm.c
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 (int h, int m, int s) { Digit_X00000= h/10; Digit_0X0000= h%10; Digit_00X000 = m/10; Digit_000X00 = m%10; Digit_0000X0 = s/10; Digit_00000X = s%10; } void refresh() { PORTC = 0b00111111; // Digits off geändert if(active_digit == 0) digit (Digit_X00000, PC0); if(active_digit == 1) digit (Digit_0X0000, PC1); if(active_digit == 2) digit (Digit_00X000, PC2); if(active_digit
in „uhrenquelcode“ · Mikrocontroller und Digitale Elektronik ·
-
PDF
Gooligum.pdf
Delay10us ; wait 10 us to settle ; compare with input btfsc CM2CON0,C2OUT ; if C2IN+ > CVref bsf sPORTC,nHI ; turn on High LED ;*** Display test results movf sPORTC,w ; copy shadow to PORTC movwf PORTC ; repeat forever goto main_loop END Using both comparators with the programmable voltage reference
in „PIC10F202/etc: Programmierung unter Linux(Ubuntu)“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Sample_UART.asm
setzen out sph,temp ;HB vom SP mit HB vom Ramende ldi otemp,0x0f out ddrc,otemp ldi otemp,0x01 out portc,otemp sbi ucsrb,RXCIE sbi ucsrb,RXEN sbi ucsrb,TXEN ldi r16,3686400/(9600*16)-1 ;Baudrate 9600 einstellen, low out UBRRL, r16 ldi r16, 0 ;Baudrate 9600 einstellen, high out UBRRH ,r16 sei main: loop
in „Atmega8 USART Unsauber“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Einfache_Uhr.c
//{{WIZARD_MAP(I/O Ports) // PortA PORTA = 0x0; DDRA = 0x0; // PortB PORTB = 0x0; DDRB = 0x0; // PortC PORTC = 0x0; DDRC = 0x0; // PortD PORTD = 0x0; DDRD = 0x0; //}}WIZARD_MAP(I/O Ports) //{{WIZARD_MAP(Watchdog) // Watchdog Disabled wdt_disable(); //}}WIZARD_MAP(Watchdog) //{{WIZARD_MAP(Analog Comparator
in „String-Formatierung für LCD Anzeige“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
defines.h
ENABLE_NUM 7 //Nummer des Enable_Ports von Engine 1 /*--->Dir_Ports der Motoren<---*/ #define E_0_DIR_PORT PORTC //Port für Direction-select von Engine 0 #define E_0_DIR_DDR DDRC //DDR für Dir-select von Engine 0 #define E_1_DIR_PORT PORTC //Port für Direction-select von Engine 1 #define E_1_DIR_DDR DDRC //DDR
in „Merkwürdiges Verhalten bei Befehlsauswertung“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
ltc1257.h
/* * Port, where LTC1257 is connected to: * PORTC/PINC */ #define DACOUT PORTC #define DACIN PINC /* * Port configuration: * * Port pin LTC1257 * -------------------- * PC3 LOAD * PC4 DATA * PC5 CLK * */ #define DACCLK(LEVEL) DACOUT = (LEVEL) ? (DACIN
in „atmega mit nicht spi anschluss“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
LCD.c
delay_us(0.01); PORTD &= ~(1<<PD2); } int main() { int BF = 1; DDRD = 0xFF; DDRB = 0xFF; DDRC = 0xFF; PORTC = 0xFF; PORTB = 0x00; PORTD = 0x00; _delay_ms(200); PORTB = 0b00110000; enable(); _delay_ms(5); PORTB = 0x00; PORTB = 0b00110000; enable(); _delay_us(110); PORTB = 0x00; PORTB = 0b00110000; enable(
in „LCD-ansteuerung mit µ-controller“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
test2.asm
; empfangenes Byte lesen, ; dadurch wird auch der Interrupt gelöscht cpi temp, 30 brne first cbi PORTC, 5 first: cpi temp, 31 brne second sbi PORTC, 5 second: rcall serout ; Daten ausgeben pop temp ; temp wiederherstellen reti ; Interrupt beenden serout: sbis UCSRA,UDRE ; Warten bis UDR für das nächste
in „Atmega8 Uart“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Text02.c
Warteschleife 4,1 mSec. PORTA |= (1<<6); // RS BIT=1 => Daten } void dsp_char_out (uint8_t dsp_char_out) { PORTC = dsp_char_out; uint16_t i; for (i=0; i<1000; i++); PORTA |= (1<<5); // Enable High PORTA &= ~(1<<5); // Enable Low } void LCD_puts (const char *lcd_string) { while (*lcd_string) { dsp_char_out (*lcd_string
in „Wie mache ich eine Textausgabe 8Bit auf Display?“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Text02.c
Warteschleife 4,1 mSec. PORTA |= (1<<6); // RS BIT=1 => Daten } void dsp_char_out (uint8_t dsp_char_out) { PORTC = dsp_char_out; PORTA |= (1<<5); // Enable High PORTA &= ~(1<<5); // Enable Low _delay_us (42); } void LCD_puts (const char *lcd_string) { while (*lcd_string) { dsp_char_out (*lcd_string++); // String auslesen -> LCD } } void LCD_init() { DDRA = 0xff; DDRC = 0xFF; PORTA = 0x10; // Beleuchtung ein PORTC = 0x00; lcd_command (lcd_function); // 8 Bit, 4 Zeilen lcd_command (lcd_clear); // Display löschen lcd_command (lcd_disp_cursor_on); // Display an, Cursor an, Blinken aus lcd_command (lcd_inc_shift
in „Wie mache ich eine Textausgabe 8Bit auf Display?“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Encodertest.c
256 TIMSK |= (1<<TOIE0); // interrupt von Timer0 bei Überlauf TCNT0 = 100; DDRC |= (1<<3) | (1<<4); PORTC |= (1<<4); PORTC |= (1<<5); // Pull up aktivieren } void Drehencoder_lesen(void) { static char enc_last = 0x01; char i = 0; if( PHASE_A ) i = 1; if( PHASE_B ) i ^= 3; // convert gray to binary i -=
-
Datei
ds1307.bas
$regfile = "m8def.dat" $crystal = 3686400 $baud = 19200 '$lib "i2c_twi.lbx" Config Sda = Portc.4 Config Scl = Portc.5 Const Ds1307w = &HD0 Const Ds1307r = &HD1 'Config Twi = 100000 Dim Weekday As Byte Declare Sub Setweekday Config Clock = User Config Date = Dmy , Separator = . Date$ = "08.05.12
in „RTC DS1307 mit Bascom konfigurieren und abfragen“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Vorwaerts_Rueckwaertszaehler.txt
gedrückt und Zählerstand kleiner 254 { // PB7 UP wenn kleiner als 254 Cnt++; // inkrementiert +1 PORTC = ~Cnt; // Zählerstand wird ausgegeben State = 1; // Zustand 1 } else if((PINB & (1 << 6)) && Cnt > 0) // PB6 und Zählstand größer 0 { // PB6 DOWN wenn größer 0 Cnt--; // dekrementiert -1 PORTC = ~
in „Vorwärts/Rückwärtszähler“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
main.c
define CTRLPORT PORTB #define CTRLDDR DDRB #define nop() asm("nop"); void LCDwrite(const uint8_t d) { PORTC&=0b11000000; PORTD&=0b00111111; PORTC|=(d&0b00111111); PORTD|=(d&0b11000000); nop(); nop(); CTRLPORT&=~(1<<WR); _delay_us(10); //max tc*25!!! CTRLPORT|=(1<<WR); } void LCDwritecmd(const uint8_t d)
in „LCD mit Uraltcontroller SED1300 ansteuern“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
spi16.h
/wait till TXready #if DEBUG_SW == 2 deb(Hi,0,1); deb(HM,5,1); deb(LM,10,1); deb(Lo,15,1); #endif PORTC = 0xff; //PORTB |= (1<<PB0); //steigende Flanke => enable } //SPI Slave receive unsigned long SPI_Slave_Rx(void) { unsigned char Lo; unsigned char LM; unsigned char HM; unsigned char Hi; unsigned long
in „SPI bidirektional 32 Bit AVR“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
help.c
Berechnungen // // Atmega16 16MHz Takt // AD-Wandlerkanal ADC0, Bereich 0-5V, 8-bit // Ausgabe binär am PortC (für R/2R Netzwerk) // // Timer0 soll jedesmal bei Overflow (jede 128us) den AD-Wandler für eine Einzelwandlung zünden // Anschl. erfolgt eine Berechnung mit dem gewandelten Wert, dabei wird PORTC
in „Timer0 gesteuerter AD-Wandler“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
ADC_M8.ASM
, 0b11111110 out DDRC, speca ldi speca, 0xFF out DDRD, speca ; Grundstart START: ldi ar0, $FF out PORTC, ar0 clr RAMCNT out PORTD, RAMCNT clr speca out PORTB, speca rjmp loop INPUTA: ; Kanal 0, interne Referenzspannung ldi sw, 0b11000000 STS ADMUX, sw ldi sw2,0b10000000 STS ADCSRA, sw2 ret sample_adc
in „PORT-B des ATMEGA168 und auch des ATMEGA48 immer $00“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Tempmesser.c
********************** //******************************************************* int main(void) { PORTC = 0xFF; init(); while(1){ //******** Display und Counter aktualisieren ************ if (!(sek_alt==sekunde)){ //Wenn der Counter nicht gleich c_seconds_alt ist... //clocktick(); //...clocktick.. //counter1 = 0; //...counter auf 0 setzen... PORTC ^= (1<<PC1); lcd_ausgabe(); //lcd aktualisieren. sek_alt = sekunde; //c_seconds_alt den aktuellen Wert der sekunde zuordnen } } }
in „Warum läuft mein Programm nicht?!“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
C-Code.txt
Ausgänge PB0 Eingang DDRC = 0b00000010; // PC1 Ausgang PC0 Eingang PORTB = 0x00; // interne Pullup aus PORTC = 0x00; PORTC |=(1<<PINC1); // PC1 auf high } // *ADC initialisieren***************************************************************************** void ADC_Init(void) { uint16_t result; ADMUX = (1<<
in „Probleme beim ersten Projekt“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
main.c
Step1]; PWM_Buffer_2= Sin_Tab[Step2]; PWM_Buffer_3= Sin_Tab[Step3]; if (++debug >= 45){ debug = 0; PORTC ^= (1<<PC0); } if (++Step1 >= 90) Step1 = 0; if (++Step2 >= 90) Step2 = 0; if (++Step3 >= 90) Step3 = 0; } ISR (TIMER1_OVF_vect){ static unsigned int Startupdelay = 30000; static unsigned int Rampe
in „Variable decementieren“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
T6963.h
DATA_DIR_IN() DDRA =0x00; #define DATA_DIR_OUT() DDRA =0xFF; #define LCD_READ PINA // read PINC, ! NOT ! PORTC #define LCD_WRITE PORTA //PORTB=(a); // write to data port #define LCD_WR 2 // LCD_WRITE #define LCD_RD 3 // LCD_READ #define LCD_CE 4 // LCD_CS #define LCD_CD 5 // LCD_COMMAND/DATA #define LCD_RST 6 // LCD_RESET #define LCD_CTRL PORTC // Steuerport LCD #define LCD_WR_H() LCD_CTRL |= _BV(LCD_WR) // = 1 #define LCD_WR_L() LCD_CTRL &= ~_BV(LCD_WR) // = 0 #define LCD_RD_H() LCD_CTRL |= _BV(LCD_RD) #define LCD_RD_L() LCD_CTRL &= ~_BV
-
Datei
PWM_in_Assembler_kommentiertes_Beispiel.asm
ldi r16, 0x00 out TCCR0, r16 out TCNT0, r16 ;reti sei rjmp main ;Eingang2_int: ;ldi r16, 0x08 ;out portc, r16 ;reti ;sei ;rjmp main main: ldi r18, 0x00 ;out Portc, r18 PWM: out OCR1BL, r17 out OCR1AL, r17 End: rjmp pwm
in „PWM in Assembler“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
sp2.asm
ldi r16, 0x00 out TCCR0, r16 out TCNT0, r16 ;reti sei rjmp main ;Eingang2_int: ;ldi r16, 0x08 ;out portc, r16 ;reti ;sei ;rjmp main main: ldi r18, 0x00 ;out Portc, r18 PWM: out OCR1BL, r17 out OCR1AL, r17 End: rjmp pwm
in „Pulslänge mit Hilfe eines Timers messen, klappt nicht...“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
uhrenquarz.bas
Time$ = "00:00:00" Date$ = "15.10.15" '##### Div. Ausgänge ##### 'LCD Beleuchtung Lcdlicht Alias Portc.2 Config Lcdlicht = Output 'DP unten links Dpul Alias Portb.2 Config Dpul = Output 'DP oben links Dpol Alias Portb.3 Config Dpol = Output 'DP unten rechts Dpur Alias Portb.0 Config Dpur = Output 'DP
in „Uhrenquarz Feineinstellung“ · Mikrocontroller und Digitale Elektronik ·