🇩🇪
while(1) { LED1 = 0; // turn LED on LED2 = 0; // turn LED on __delay_ms(500); // warte halbe Sekunde LED1 = 1; // turn LED off LED2 = 1; // turn LED off __delay_ms(500); // warte halbe Sekunde }
void servoRotate90() //90 Degree { GPIO != 0x03; // beide 1 __delay_us(1500); // pulsdauer GPIO &= 0xFC; // beide 0 }
/******************************************************************************* * File: main.c * Project: SP18 - Hello World * Author: Nicolas Meyertöns * Version: siehe main.h * Web: http://pic-projekte.de ******************************************************************************/ #include <xc.h> #define LED1 LATBbits.LB1 #define _XTAL_FREQ 2000000 #define LED2 LATBbits.LB5 #pragma config FOSC = INTIO67 // Internal oscillator block #pragma config PWRTEN = ON // Power up timer enabled #pragma config BOREN = OFF // Brown-out Reset disabled #pragma config WDTEN = OFF // Watch dog timer is always disabled #pragma config MCLRE = EXTMCLR // MCLR enabled #pragma config LVP = OFF // Single-Supply ICSP disabled /******************************************************************************* * Diverse Einstellungen zum PIC (IO, Takt, ...) */ void initPIC(void) { TRISA = 0x00; TRISB = 0x01; // RB0:Input (PB) TRISC = 0x20; // RC6:Input (AN16) ANSELA = 0x00; // All digital ANSELB = 0x00; // ... ANSELC = 0x20; // AN16 on OSCCON2bits.MFIOSEL = 0; // 111: 16 MHz OSCCONbits.IRCF2 = 1; // 110: 8 MHz OSCCONbits.IRCF1 = 0; // 101: 4 MHz OSCCONbits.IRCF0 = 0; // 100: 2 MHz <-- aktiv } /******************************************************************************* * Main Routine */ void main (void) { initPIC(); /*Shut OFF the LCD-Backlight*/ LATCbits.LC2 = 1; /*Endlosschleife*/ while(1) { LED1 = 0; // turn LED on __delay_ms(250); // delay 250 ms __delay_ms(250); // ... LED1 = 1; // turn LED off __delay_ms(250); // ... LED2 = 0; // turn LED on __delay_ms(250); // delay 250 ms __delay_ms(250); // ... LED2 = 1; // turn LED off __delay_ms(250); } }[code]/* * File: newmain.c * Author: Herbert * * Created on 12. Oktober 2019, 17:26 */ #define _XTAL_FREQ 8000000 #include <xc.h> #pragma config FOSC = INTOSCIO // Oscillator Selection bits (HS oscillator: High-speed crystal/resonator on RA4/OSC2/CLKOUT and RA5/OSC1/CLKIN) #pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled) #pragma config PWRTE = ON // Power-up Timer Enable bit (PWRT enabled) #pragma config MCLRE = OFF // MCLR Pin Function Select bit (MCLR pin function is digital input, MCLR internally tied to VDD) #pragma config CP = OFF // Code Protection bit (Program memory code protection is disabled) #pragma config CPD = OFF // Data Code Protection bit (Data memory code protection is disabled) #pragma config BOREN = OFF // Brown Out Detect (BOR disabled) #pragma config IESO = OFF // Internal External Switchover bit (Internal External Switchover mode is disabled) #pragma config FCMEN = ON // Fail-Safe Clock Monitor Enabled bit (Fail-Safe Clock Monitor is enabled) void servoRotate0() //0 Degree { unsigned char i; for(i=0;i<50;i++) { GP1 = 1; __delay_us(800); GP1 = 0; __delay_us(19200); GP0 = 1; __delay_us(800); GP0 = 0; __delay_us(19200); } } void servoRotate90() //90 Degree { unsigned int i; for(i=0;i<50;i++) { GP1 = 1; __delay_us(1500); GP1 = 0; __delay_us(18500); GP0 = 1; __delay_us(1500); GP0 = 0; __delay_us(18500); } } void servoRotate180() //180 Degree { unsigned int i; for(i=0;i<50;i++) { GP1 = 1; __delay_us(2200); GP1 = 0; __delay_us(17800); GP0 = 1; __delay_us(2200); GP0 = 0; __delay_us(17800); } } void main() { OSCCON = 0b00000000; OSCCONbits.IRCF = 0b111; TRISIO = 0x00; // PORTB as Ouput Port do { servoRotate0(); //0 Degree __delay_ms(2000); servoRotate90(); //90 Degree __delay_ms(2000); servoRotate180(); //180 Degree }while(1); }