-
Datei
test_achim_01.c
led_blinken1(); // Aufruf Unterprogramm if(get_key_press(1<<KEY_2)) // nur Taste press { // LED an PORTC &= ~(1<<PC5); } if(get_key_press(1<<KEY_3)) // nur Taste press { // LED aus PORTC |= (1<<PC5); } if(get_key_short(1<<KEY_1)) // kurz schalten immer zusammen mit long { PORTC &= ~(1<<PC6); // LED an } if(get_key_long(1<<KEY_1)) // Lang schalten immer mit short { PORTC |= (1<<PC6); // LED aus } anzeige(); } } }
in „Anzeige LCD-I2C / Multitasking und Tasterentprellung von Peter“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
main.c
Daten an IR-Port ausgeben */ unsigned char i; for (i=0; i<8; i++) { if ( ( UDR & (0x01<<i) ) > 0){ PORTC |= (1 << PORTC0); } else { PORTC &= ~(1 << PORTC0); }; }; } } void LOGIN () { /* IR-Ausgang Ausschalten */ PORTC &= ~(1 << 0); /* Auf Rechner-Login warten */ USART_empfangen (); /* Logindaten vergleichen
in „C-Prog. (ATmega16) für IR-Sender“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Timer_neu_.asm
goto init org 0x04 init ; Initialisierung bsf STATUS, RP0 ; Bank = 1 bcf STATUS, RP1 MOVLW 0x00 ; PORTC = Ausgänge MOVWF TRISC MOVLW 0xFF ; PORTB = Eingänge MOVWF TRISB bcf STATUS, RP0 ; Bank = 0 MOVLW 0xFF ; LED Test MOVWF PORTC wait_s1 ; PORTB Test BTFSS PORTB, 1 goto wait_s1 wait_s2 BTFSS PORTB, 2
in „PIC16F877 - Timer0-programm startet nicht“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
versuch_led_2.c
taster; switch (tast) { default: case NO_TASTER: break; case 0: while(1) { PIND &= ~ (1 << PIND7); PORTC |= (1 << PC5); _delay_ms(200); PORTC |= (1 << PC4); _delay_ms(200); PORTC |= (1 << PC3); _delay_ms(200); PORTC &= ~( (1 << PC5) | (1 << PC4) | (1 << PC3) ); _delay_ms(200); if (tast==1) { break;} } // PORTC |= (1 << PC3); break; if (tast != NO_TASTER) taster = NO_TASTER; } }
in „Frage zu einfacher Schleife/Bedingung“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
uart_forum.c
receiving a sign via serial Interface { uint8_t data; data = UDR; switch (data) { case 'a': {ToggleBit(PORTC,PC0); break;} case 'b': {ToggleBit(PORTC,PC1); break;} case 'c': {ToggleBit(PORTC,PC2); break;} case 'd': {ToggleBit(PORTC,PC3); break;} } } int main(void) { uint8_t i; //Initialization UART UBRRH=
-
Datei
main.c
); break; case (0x3A): if(bit_is_set(PORTC, 7)) zeiger += pgm_read_byte(++zeiger); break; case (0x3B): if(bit_is_set(PORTC, 6)) zeiger += pgm_read_byte(++zeiger); break; case (0x3C): if(bit_is_set(PORTC, 5)) zeiger += pgm_read_byte(++zeiger); break; case (0x3D): if(bit_is_set(PORTC, 4)) zeiger += pgm_read_byte(++zeiger); break; case (0x3E): if(bit_is_set(PORTC, 3)) zeiger += pgm_read_byte(++zeiger); break; case (0x3F): if(bit_is_set(PORTC, 2)) zeiger += pgm_read_byte(++zeiger
in „rekursiver Funktionsaufruf verbraucht 1814 Bytes??“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
main2.c
); break; case (0x3A): if(bit_is_set(PORTC, 7)) zeiger += pgm_read_byte(++zeiger); break; case (0x3B): if(bit_is_set(PORTC, 6)) zeiger += pgm_read_byte(++zeiger); break; case (0x3C): if(bit_is_set(PORTC, 5)) zeiger += pgm_read_byte(++zeiger); break; case (0x3D): if(bit_is_set(PORTC, 4)) zeiger += pgm_read_byte(++zeiger); break; case (0x3E): if(bit_is_set(PORTC, 3)) zeiger += pgm_read_byte(++zeiger); break; case (0x3F): if(bit_is_set(PORTC, 2)) zeiger += pgm_read_byte(++zeiger
in „rekursiver Funktionsaufruf verbraucht 1814 Bytes??“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
DCF77.asm
; aktiviere die internen Pull-Ups von PD ldi temp1, 0xFF ; temp1 mit 0xFF laden out DDRC, temp1 ; PortC ist ein Ausgang out PORTC, temp1 ; Alle LEDs aus ldi temp1, high(tm1end) ; Timer1 Endwert1 H out ocr1ah, temp1 ; ausgeben ldi temp1, low(tm1end) ; Timer1 Endwert1 L out ocr1al, temp1 ; ausgeben clr
in „Mal wieder DCF77“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
tbf5030_c3a_3.c
(ADCH); adc_mux[j]=(ADCData_h<<8)|ADCData_l; cbi(PORTC,3); break; case 1: sbi(PORTC,0); cbi(PORTC,1); cbi(PORTC,2); sbi(PORTC,3); outp(7,ADMUX); outp(BV(ADEN)|BV(ADSC)|BV(ADPS2)|BV(ADPS1), ADCSR); for(delay_time=0; delay_time<4000; delay_time++); ADCData_l=inp(ADCL); ADCData_h=inp(ADCH); adc_mux[j]=(ADCData_h<<8)|ADCData_l; cbi(PORTC,3); break; case 2: cbi(PORTC,0); sbi(PORTC,1); cbi(PORTC,2); sbi(PORTC,3); outp(7,ADMUX); outp(BV(ADEN)|BV(ADSC)|BV(ADPS2)|BV(ADPS1), ADCSR); for(delay_time=0; delay_time<4000; delay_time++); ADCData_l
in „Fehler beim Compilieren“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Mega16_RTC-4553_SRF04_GLCD.txt
Y_alt = 1 X_neu = 1 Y_neu = 1 Enable Interrupts Config Pinc.2 = Output Config Pinc.3 = Input Config Portc.5 = Output Config Portc.6 = Output Config Portc.7 = Output ' Konstanten deklarieren Const Setyear = &B00001011 Const Setmonth = &B00001001 Const Setday = &B00000111 Const Sethour = &B00000100 Const Setminute = &B00000010 Rtcwr Alias Portc.5 Rtccs1 Alias Portc.6 Rtccs0 Alias Portc.7 Rtccs1 = 1 Rtccs0 = 0 ' SPI konfigurieren und initialisieren Config Spi = Hard , Interrupt = Off , Data Order = Lsb , Master = Yes , Polarity = Low , Phase
in „KS0108B Displaytech 64128A“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
LCD_Test3.c
a = PORTC; a &= 0x03; } while (a!=0x03); PORTB = PORTB | 0b00000010; PORTB = PORTB | 0b00001000; TRISC = 0x00; //Portc auf Ausgang } /* EasyCASE ) */ /* EasyCASE ( 1176 WriteCommand */ /* EasyCASE F */ void WriteCommand(int command) { Check_Busy(); PORTC = command; //Kommando schreiben PORTB = PORTB | 0b00000001; PORTB = PORTB | 0b00000010; PORTB = PORTB & 0b11110111; PORTB = PORTB & 0b11111011; DelayUs(5); PORTB = PORTB | 0b00000100; PORTB = PORTB
in „Grafikdisplay“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
main.c
100000 #define TWI_BAUDSETTING TWI_BAUD(F_CPU, TWI_BAUDRATE) #define data 0x06 int main( void ) { PORTC.PIN0CTRL= PORT_OPC_WIREDAND_gc; /* Set up user interface. */ LEDPORT.DIRSET = LEDMASK; LEDPORT.OUTSET = LEDMASK; SWITCHPORT.DIRCLR = SWITCHMASK; SWITCHPORT.PIN2CTRL |= ( 0b011 << 3 ); // Pullup PQ2
in „TWI - Hilfe!“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
ADC_SEND_--UART_RS232.c
{ Init(); setup_uart(); DummyValue(); //char SendData = 'A'; while(1) { if (ADMUX & (1<<MUX0)) { PORTC ^= (1<<PC0); //ADCRun(); for (uint8_t i = 0; i<11; i++) { if (i == 0) { ADCSRA |= (1<<ADSC); while ( ADCSRA & (1<<ADSC)); ADC_result = ADCW; ADC_result = 0; } else { ADCSRA |= (1<<ADSC); //single conversion
in „ATmega16: ADC0 Wert schwankt obwohl konst. Spannung anliegt“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
main.c
PORTD3 // 74HC595.12 (RCK) #define ACT_INDICATOR_OE PORTD2 // 74HC595.13 (^OE) #define RX_SENSE_PORT PORTC #define RX_SENSE_DDR DDRC #define RX_SENSE_PIN PINC #define RX_SENSE_INPUT PORTC4 // Sense Leitung an INPUT-RX #define RX_SENSE_OUT4 PORTC3 // Sense Leitung an OUTPUT4-RX #define RX_SENSE_OUT3 PORTC2 // Sense Leitung an OUTPUT3-RX #define RX_SENSE_OUT2 PORTC1 // Sense Leitung an OUTPUT2-RX #define RX_SENSE_OUT1 PORTC0 // Sense Leitung an OUTPUT1-RX // enthält die Anzahl der Blink-Zyklen, die je LED noch auszugeben sind. // Die Pin-Change ISR setzt bei
in „rs422 Splitter / Aktivitätsanzeige mit LEDs - wie umsetzen?“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
main.c
inclusive.c" #include "Selfmade/Atmega644/diagnose.c" #include "Selfmade/Atmega644/os.c" #define CHV_EN sbi(PORTC, 3) #define CHV_DIS cbi(PORTC, 3) #define TDA_EN sbi(PORTC, 4), tda_enabled = 1 #define TDA_DIS cbi(PORTC, 4), tda_enabled = 0 #define BT_EN sbi(PORTC, 5) #define BT_DIS cbi(PORTC, 5) #define CON_EN
in „RTOS UART Semaphore“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
main.c
OVF_vect) { TCCR0 = ( (0<<CS02) |(0<<CS01) | (0<<CS00) ); //Timer0 ausschalten if(timer0tmp==0) { PORTC|=(1<<0); timer0tmp=1; } else { PORTC&=~(1<<0); timer0tmp=0; } } ISR(INT1_vect) { TCCR2 = ((1<<CS22) |(1<<CS21) | (1<<CS20)); //F_CPU:1024=977Hz TCNT2 = 0; MCUCR = ((0<<ISC11) | (1<<ISC10)); //auf alle
in „ext. Interrupt“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
main.c
char **argv) { //init_timer0(); init_Ports(); //DDRA = 0xff; //sei(); while(1) { //zahlAusgabe(123); PORTC = 0x01; PORTA = 0xff; } } //FUNKTIONEN void init_timer0(void) { TCCR0 |= (1<<WGM01)| (1<<CS02) | (1<<CS00); OCR0 = FCLOCK/((uint32_t)PRESCALER*100); TIMSK |= (1<<OCIE0); } void init_Ports(void) { DDRA
in „mega32 unterschiedliche Portpegel trotz "gleicher" Initialisierung“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Wegmessung3.bas
Definiert die Übertragungsgeschwindigkeit Config Spi = Soft , Din = Pinc.1 , Dout = Pinc.3 , Ss = Portc.0 , Clock = Pinc.2 'Konfiguiere SPI mit Din = MISO und Dout = MOSI außerdem ist es automatisch Master SS = NCS 'Ausgänge definieren: Config Portd.2 = Output 'Pin D2 zu Ansteuerung der LED Config Portc
in „Ansteuern eines Agilent Chip über das SPI Protokoll“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Code.txt
sensor_ost; uint16_t sensor_nord; int main (void) { DDRC = 0xFF; // Port C wird als Ausgang deklariert PORTC = 0; // Alle Pins am Port C werden auf low gesetzt PORTA = 0x00; ADC_Init(); while (1) { automatik (); } } void automatik (void) { >>>>>>>sensor_sued = ADC_Read (0); sensor_west = ADC_Read (1); sensor_ost
in „"error: conflicting types for ADC_Read"“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
06_wie_testprog_Funktioniert.c
unsigned) &y*8+z) //Eingänge PIN (/*Switch*/Pir, PORTB, 4); //PIN (Pir, PORTB, 5); //Ausgänge PIN (Out, PORTC, 1);//PWM Ausgang PIN (Laut, PORTC, 0); ///////////////////////////////////////////////////////////////////////////////////////////////////////////// fPortinitialisierung(void) { ANSEL = 0x00; /*PORTA
in „PIC ignoriert endlosschleife“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
test_uart.c
receiving a sign via serial Interface { uint8_t data; data = UDR; switch (data) { case 'a': {ToggleBit(PORTC,PC0); break;} case 'b': {ToggleBit(PORTC,PC1); break;} case 'c': {ToggleBit(PORTC,PC2); break;} case 'd': {ToggleBit(PORTC,PC3); break;} } } int main(void) { uint8_t i; //Initialization UART UBRRH=
in „!!dringend!! Datenübertagung mit UART - AT89S8252 !?!?!?!“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
source.txt
;} if (( PINA & 0b00000100 ) != 0) {PORTC = Taster2; MidiSenden(MidiKanalTaster2);} if (( PINA & 0b00001000 ) != 0) {PORTC = Taster3; MidiSenden(MidiKanalTaster3);} if (( PINA & 0b00010000 ) != 0) {PORTC = Taster4; MidiSenden(MidiKanalTaster4);} if (( PINA & 0b00100000 ) != 0) {PORTC = Taster5; MidiSenden(MidiKanalTaster5);} if (( PINA & 0b01000000 ) != 0) {PORTC = Taster6; MidiSenden(MidiKanalTaster6);} if (( PINA & 0b10000000 ) != 0) {PORTC = Taster7; MidiSenden(MidiKanalTaster7
in „Kann vllt jemand mein erstes Programm kontrollieren“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
alf.c
= tempPointer; takeNewValuesOK = 0; } } if (loopCounter == currentPointerForISR[0]) { PORTC.3 = 0; } if (loopCounter == currentPointerForISR[1]) { PORTC.6 = 0; } if (loopCounter == currentPointerForISR[2]) { PORTA.4 = 0; } if (loopCounter == currentPointerForISR[3]) { PORTC.2 = 0; } if (loopCounter == currentPointerForISR[4]) { PORTC.5 = 0; } if (loopCounter == currentPointerForISR[5]) { PORTA.5 = 0; } if (loopCounter == currentPointerForISR[6]) { PORTC.1 = 0; } if (loopCounter == currentPointerForISR[7]) { PORTC.4 = 0; } if (loopCounter
in „12bit, 9-Kanal Soft-PWM für LEDs auf Mega16“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
HC-SR04_Version_1.0.asm
, nur RS=0 push temp2 mov temp2, temp1 swap temp1 andi temp1, 0b00001111 out PORTC, temp1 rcall lcd_enable andi temp2, 0b00001111 out PORTC, temp2 rcall lcd_enable rcall delay50us pop temp2 ret ; erzeugt den Enable-Puls ; ; Bei höherem Takt (>= 8 MHz) kann es notwendig sein, ; vor
in „HC-SR04 Assembler für Abstandmessung“ · Projekte & Code ·
-
Datei
HC-SR04_V2.0.asm
, nur RS=0 push temp2 mov temp2, temp1 swap temp1 andi temp1, 0b00001111 out PORTC, temp1 rcall lcd_enable andi temp2, 0b00001111 out PORTC, temp2 rcall lcd_enable rcall delay50us pop temp2 ret ; erzeugt den Enable-Puls ; ; Bei höherem Takt (>= 8 MHz) kann es notwendig sein, ; vor
in „HC-SR04 Assembler für Abstandmessung“ · Projekte & Code ·
-
Datei
DCF77_Mega88.c
) && (Timer < 2150)) BitState = Bit1; Pin = 0; PORTC.0 = 0; EIMSK = 0; EICRA = 3; // Steigende Flanke EIMSK = 1; } } // Standard Input/Output functions #include <stdio.h> int _Year(int Y) { int y=0; if (Y > 2010)y=Y-2000; return y; } // Timer0 overflow
in „DCF77 Bit0 ermitteln“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Uhr1.c
Zifferauswahl erhöhen switch (Temp_ziffer) //welche Ziffer soll angesteuert werden { case 1 : //1. Ziffer PORTC= 0x01; PORTD = ~ PRG_RDB(Segmentfolge + (sekunde % 10)); break; case 2 : //2. Ziffer PORTC= 0x02; PORTD = ~ PRG_RDB(Segmentfolge + (sekunde / 10)); break; case 3 : //3. Ziffer PORTC= 0x04; PORTD = ~ PRG_RDB(Segmentfolge + (minute % 10)); break; case 4 : //4. Ziffer PORTC= 0x08; PORTD = ~ PRG_RDB(Segmentfolge + (minute / 10)); break; case 5 : //5. Ziffer PORTC= 0x10; PORTD = ~ PRG_RDB(Segmentfolge + (stunde % 10)); break; case 6 : //6. Ziffer PORTC= 0x20; PORTD = ~
in „Bitfeld definition“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Uhr_7Seg.c
[1].Zahl==10) { Anzeige[1].Zahl=0; } } void Ausgabe(segment *segstr) { static short int Z=0; Z++; PORTC=0x00; PORTA=0xFF; switch(Z) { case 0: PORTC=0x04; //Einer Sek BCDDecode(&segstr[0]); break; case 1: PORTC=0x08; //Zehne Sek BCDDecode(&segstr[1]); break; case 2: PORTC=0x10; //Einer Min BCDDecode(&segstr[2]); break; case 3: PORTC=0x20; //Zehne Min BCDDecode(&segstr[3]); break; case 4: PORTC=0x40; //Einer Std BCDDecode(&segstr[4]); break; case 5: PORTC=0x80; //Zehne Std BCDDecode(&segstr[5]); Z=-1; break; } } void BCDDecode(
in „DCF77-Modul Empfang weiter verbessern.“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Timer.asm
goto init org 0x04 init ; Initialisierung bsf STATUS, RP0 ; Bank = 1 bcf STATUS, RP1 MOVLW 0x00 ; PORTC = Ausgänge MOVWF TRISC MOVLW 0xFF ; PORTB = Eingänge MOVWF TRISB MOVLW 0x04 ; OPTION_REG/Timer vorbereiten MOVWF OPTION_REG bcf STATUS, RP0 ; Bank = 0 MOVLW 0xFF ; LED Test MOVWF PORTC wait_s1 ; PORTB
in „PIC16F877 - Timer0-programm startet nicht“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
DotMatrix1.asm
start: ;display ON cbi PORTD,6 ;write (R/W) cbi PORTD,5 ;instruction (D/I) ldi r16,0b00111111 out PORTC,r16 ;(D0-D7) cbi PORTD,2 ;E1 rcall delay sbi PORTD,2 ;wähle x 0 cbi PORTD,6 ;write (R/W) cbi PORTD,5 ;instruction (D/I) ldi r16,0b10111000 out PORTC,r16 ;(D0-D7) cbi PORTD,2 ;E1 rcall delay sbi PORTD,2 ;wähle y 0 cbi PORTD,6 ;write (R/W) cbi PORTD,5 ;instruction (D/I) ldi r16,0b01000000 out PORTC,r16 ;(D0-D7) cbi PORTD,2 ;E1 rcall delay sbi PORTD,2 ;write data cbi PORTD,6 ;write (R/W) sbi PORTD,5 ;data (D/I) ldi r16,0b10101010 out PORTC,r16 ;(D0-D7) cbi PORTD,2 ;E1 rcall delay sbi PORTD,2 jmp
in „EA DIP128-6 LCD Ansteuerprobleme (Wo liegt der Fehler im Code?)“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
eisenbahn.c
(); soll = temp; } else if(temp == 'r') { temp = usart_empfange_zeichen(); if(temp == 'v') { if(!(PORTC & 0x01)) { PORTD |= (1 << PD5); temp = soll; soll = 0x00; while(ist != 0x00); PORTD &= ~(1 << PD5); PORTC = 0x01; soll = temp; } } else if(temp == 'r') if(!(PORTC & 0x02)) { PORTD |= (1 << PD6); temp = soll; soll = 0x00; while(ist != 0x00); PORTD &= ~(1 << PD6); PORTC = 0x02; soll = temp; } } } else if(temp == 0x00) { temp = usart_empfange_zeichen(); if(temp == 's') { temp = usart_empfange_zeichen(); if(temp == 0xFF) { soll = 0; ist = 0; OCR2 = 0; } } } } return
in „AVR, Probleme mit globaler Variablen“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
a.c
SPDR = cData; /* Wait for transmission complete */ while(!(SPSR & (1<<SPIF))); } int main(void) { PORTC &= ~(1<<PC0); //Reset (active LOW) _delay_ms(5); //Reset wartezeit PORTC |= (1<<PC0); //Reset (active LOW) -status beenden (high setzen) uint8_t Screen[84]; uint8_t sendByte; for(uint8_t a = 0; a>83
in „Nokia 3310 Display an ATMega48 tut nichts“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
catlog.c
int EndFlag = 0; volatile unsigned int DigitVisible = 0; tmpStunde = stunde; tmpMinute = minute; PORTC = tmpMinute % 10; cli(); while(!EndFlag) { PORTC = tmpMinute % 10; while(!EndFlag) { if (!(PIND & 1<<3)) { while (!(PIND & 1<<3)){}; tmpMinute++; PORTC = tmpMinute % 10; } } DigitVisible++; } /* Stunden
in „Internal Pullup funktioniert nicht“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
dds_test.asm
r20,0xE3 ldi r21,0x8E ;Datenwörter ausgeben cbi portd,0 ;WRclk auf low cbi portd,1 ;fqud auf low out portc,r17 call warte10u sbi portd,1 ;wrclk erst high dann low call warte1u cbi portd,1 call warte1u out portc,r18 call warte10u sbi portd,1 ;wrclk erst high dann low call warte1u cbi portd,1 call warte1u out portc,r19 call warte10u sbi portd,1 ;wrclk erst high dann low call warte1u cbi portd,1 call warte1u out portc,r20 call warte10u sbi portd,1 ;wrclk erst high dann low call warte1u cbi portd,1 call warte1u
in „code problem mega16“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
main.c
// Datenrichtung Ausgang DDRD |= (1 << DDD3); // LED DDRC |= (1 << DDC0); // Sync_nicht, DAC 8534 PORTC |= (1 << PC0); // Sync_nicht ein DDRC |= (1 << DDC1); // CS_nicht, ADC LTC2436 PORTC |= (1 << PC1); // CS_nicht ein // Timer, 16 bit, Compare Match Modus, Vorteiler 1024 TCCR1B |= (1 << WGM12) | (1
in „ADC LTC2436 an Atmega8, in C“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
lcd.asm
after power up movwf loops call WAIT movlw B'00000000' ; 1 PORTB movwf PORTB movlw B'00110000' ; 1 PORTC call Control8Bit movlw D'200' ; 200 ms wait movwf loops call WAIT movlw B'00000000' ; 2 PORTB movwf PORTB movlw B'00110000' ; 2 PORTC call Control8Bit movlw D'200' ; 200 ms wait movwf loops call WAIT movlw B'00000000' ; 3 PORTB movwf PORTB movlw B'00110000' ; 3 PORTC call Control8Bit movlw D'200' ; 200 ms wait movwf loops call WAIT movlw B'00100000' ; 4 function set, 4-bit 1-zeilig, 5x7 call OutLcdControl movlw B'00001000' ; 5 display off call OutLcdControl movlw
in „PIC16F690 init vom LCD funzt nich“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
BLDC.c
Hall2 SBIT( PIND, 1 ) #define Hall3 SBIT( PIND, 2 ) #define ENA1 SBIT( PORTB, 1 ) #define ENB1 SBIT( PORTC, 4 ) #define W SBIT( PORTC, 3 ) #define V SBIT( PORTC, 2 ) #define ENA2 SBIT( PORTC, 1 ) #define U SBIT( PORTC, 0 ) #define Hall1_DDR SBIT( DDRD, 0 ) #define Hall2_DDR SBIT( DDRD, 1 ) #define Hall3
in „BLDC dreht CCW schneller als CW?“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Akkulader4.bas
Chipselect 'SCK --> Portd.4 'Serial Clock 'SDI --> Portd.3 'Serial Data Input 'A/D-Wandler LTC2400 'CS --> Portc.2 'Chipselect 'SCK --> Portc.4 'Serial Clock 'SDO --> Portc.3 'Serial Data Output 'Temperatursensor DS1821 'DQ --> Portb.1 'Datenleitung '############################### Konstanten ################
in „AVR resettet auf mysteriöse Art“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
4x3_Relais03.bas
"0=aus/1=ein" Const Anz3 = "87654321" Portc = 0 'alles Relais aus Locate 1 , 1 : Lcd Anz1 Locate 1 , 14 : Lcd Anz3 Do For Column = 0 To 2 If Column = 0 Then Reset Portd.0 If Column = 1 Then Reset Portd.1 If Column = 2 Then Reset Portd.2 'If
-
Datei
firmware_v1.bas
declares sub "Check_dip" '[START] defines 8-Ports as Dip1 to Dip8 Dip1 Alias Pinc.4 Config Dip1 = Input Portc.4 = 1 'turns PullUp on Dip2 Alias Pinc.3 Config Dip2 = Input Portc.3 = 1 'turns PullUp on Dip3 Alias Pinc.2 Config Dip3 = Input Portc.2 = 1 'turns PullUp on Dip4 Alias Pinc.1 Config Dip4 = Input Portc.1 = 1 'turns PullUp on Dip5 Alias Pinc.0 Config Dip5 = Input Portc.0 = 1 'turns PullUp on Dip6 Alias Pinb.0 Config Dip6 = Input Portb.0 = 1 'turns PullUp on Dip7 Alias Pind.7 Config Dip7 = Input Portd.7 = 1 'turns PullUp on Dip8 Alias Pind.6 Config Dip8 = Input Portd
-
Datei
SPI_Portexpander.c
ausgegeben wurde { linePort&=~(1<<RIGHT); //zeile ausschalten SPDR=schiebe_links; //daten an SPI übergeben PORTC|=(1<<PC0); //pin toggeln für debugging while(!(SPSR&(1<<SPIF))); //warten bis Daten fertig gesendet sind PORTC&=~(1<<PC0); //pin toggeln für debugging daten=SPDR; // linePort|=(1<<LEFT); //zeile einschalten
in „Mega8 bleibt bei SPI-Ausgabe hängen“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
spi_test_m.c
= ~((1<<PB2)|(1<<PB4)); DDRC = 255; uart_txh(DDRB);uart_txs("\r"); SS_ALLOW(DDRC, PC1); SS_PASSIV(PORTC, PC1); // unsigned int j = 256; unsigned int i; // j = PINB;uart_txh(j);for(;;); for(;;) { _delay_ms(1500); /*SPCR = ( 1<<SPE ); SS_AKTIVE(PORTC, PC0); //S_SS = 0 SPCR = ( 1<<SPE )|(1<<MSTR); i = spi_exch( j++ ); SS_PASSIV(PORTC, PC0); //S_SS = 1*/ i = spi_exch_mulslv(&PORTC, PC1, j++); uart_txi(j-1); uart_txs("="); uart_txi(i);uart_txs(" SPSR=");uart_txh(SPSR); uart_txs("\r"); } }
in „SPI hängt beim Warten auf Ende der Übertragung“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
first-test.c
int count2 = 0; volatile int i = 0; int main(void) { DDRB = 0xFF; DDRC = (1 << PD0) | (1 << PD1); PORTC = (1 << PD0); TIMSK = (1<<TOIE0) | (1<<TOIE2); TCCR0 = (1<<CS01); // vorteiler = 8 TCCR2 = (1<<CS01); TCNT0 = 131; TCNT0 = 131; sei(); while(1) { if(count == 1000) // jede 1000ms == 1s { count = 0;
in „Problem beim Multiplexen zweier 7-Segment Anzeigen“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
first-test.c
int count2 = 0; volatile int i = 0; int main(void) { DDRB = 0xFF; DDRC = (1 << PD0) | (1 << PD1); PORTC = (1 << PD0); TIMSK = (1<<TOIE0) | (1<<TOIE2); TCCR0 = (1<<CS01); // vorteiler = 8 TCCR2 = (1<<CS01); TCNT0 = 131; TCNT0 = 131; sei(); while(1) { if(count == 1000) // jede 1000ms == 1s { count = 0; i++; } if(i == 100) i = 0; if(count2 == 0) { PORTC = (1<<PD0); PORTB = zahlen[i/10]; } if(count2 == 1) { PORTC |= (0<<PD0); PORTB = 0x00; } if(count2 == 2) { PORTC = (1<<PD1); PORTB = zahlen[i%10]; } if(count2 == 3) { PORTC |= (0<<PD1); PORTB = 0x00
in „Problem beim Multiplexen zweier 7-Segment Anzeigen“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
Versuch3.c
_delay_ms(0.64); switch(toupper(buffer)) { case 'A': PORTC = 0x00; break; //d:0, wenn die Taste gedrückt wird dreht sich der motor nach links case 'S': PORTC = 0x74; break; //d:116...b:01110100, wenn die Taste gedrückt wird dreht sich der motor nicht mehr case 'D': PORTC = 0xFF; break; //d:255...b:11111111, wenn die Taste gedrückt wird dreht sich der motor nach rechts case 'E': PORTD |= (1<<PD7); break; //d:128...b:10000000, wenn die Taste gedrückt wird der motor eingeschaltet
in „Drehzahlmesser mit Atmega 16 + Gegenkopplung“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
inkrementalgeber123.cc
MotorStepBackward(); int main( void ) { // Hauptschleife.... // Aus- bzw. Eingänge konfiguration DDRC=0xFF; // PORTC als Ausgang DDRD=0x00; // PORTD als Eingang DDRB=0x00; // PORTD als Eingang PORTD = 0xFF; // Pullup; 0=aus; 1=ein // Eingang nach Masse gezogen, wenn geschlossen. Ansonsten Pegel auf VCC PORTB = 0xFF
in „Drehrichtungsumkehr.Microcontroller Programm funzt nicht richtig.“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
inkrementalgeber1234.cc
MotorStepBackward(); int main( void ) { // Hauptschleife.... // Aus- bzw. Eingänge konfiguration DDRC=0xFF; // PORTC als Ausgang DDRD=0x00; // PORTD als Eingang DDRB=0x00; // PORTD als Eingang PORTD = 0xFF; // Pullup; 0=aus; 1=ein // Eingang nach Masse gezogen, wenn geschlossen. Ansonsten Pegel auf VCC PORTB = 0xFF
in „Drehrichtungsumkehr.Microcontroller Programm funzt nicht richtig.“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
dcf77_mega8.bas
= 38400 Config Pind.4 = Output Config Pind.2 = Output ' 'Config LCD ' Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0 Config Lcd = 16 * 2 'configure lcd screen Initlcd Cursor Off Cls Dim E As Byte Dim D As Byte Dim C As Byte Dim Dow As
in „Nochmal die Experten bitte - DCF77“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
dcf77_mega8.bas
= 38400 Config Pind.4 = Output Config Pind.2 = Output ' 'Config LCD ' Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0 Config Lcd = 16 * 2 'configure lcd screen Initlcd Cursor Off Cls Dim E As Byte Dim D As Byte Dim C As Byte Dim Dow As
in „DCF77 + Bascom“ · Mikrocontroller und Digitale Elektronik ·
-
Datei
PWM-Programm.asm
ANDI temp,0b11111110 ;damit beide Motoren nach vorne drehen ORI temp, 0b00001010 OUT PORTB,temp CBI PORTC, 3 RJMP END UP_RIGHT: IN temp, PORTB ;entsprechende Werte auf Motorsteuerung geben ANDI temp,0b11110110 ;um nach vorne rechts zu drehen ORI temp, 0b00000010 OUT PORTB,temp CBI PORTC, 3 RJMP END UP_LEFT
in „Abschlussprojekt“ · Mikrocontroller und Digitale Elektronik ·