1 | Init(void)
|
2 | {
|
3 | //OSCCON
|
4 | IDLEN = 0; //Idle enable bit
|
5 | IRCF2 = 1; //Internal Oscillator Frequency
|
6 | IRCF1 = 1; //8 MHz
|
7 | IRCF0 = 1; //
|
8 | OSTS = 0; //
|
9 | IOFS = 0; //
|
10 | SCS1 = 1; //System Clock Select bits
|
11 | SCS0 = 0; //
|
12 | /*ANALOG*DIGITAL*WANDLER*******************************************************/
|
13 |
|
14 | //ADCON1
|
15 | VCFG1 = 0; //Voltage Reference VREFL
|
16 | VCFG0 = 0; //Voltage Reference VREFH
|
17 | PCFG3 = 1; //AD Port
|
18 | PCFG2 = 1; //Configuration
|
19 | PCFG1 = 1; //Bits
|
20 | PCFG0 = 1; //alle digital
|
21 |
|
22 | /*INTERUPT*********************************************************************/
|
23 |
|
24 | //INTCON
|
25 | GIE = 1; //Global Interrupts
|
26 | PEIE = 1; //Peripheral Interrupts
|
27 | TMR0IE = 1; //Timer0 Interrupt Enable
|
28 | INT0IE = 0; //External Interrupt on RB0/INT0 Enable
|
29 | RBIE = 1; //RBPort Interrupt Enable
|
30 | TMR0IF = 0; //Timer0 Interrupt FLAG
|
31 | INT0IF = 0; //External Interrupt FLAG RB0/INT0
|
32 | RBIF = 0; //RBPort Interrupt FLAG
|
33 |
|
34 | //INTCON2
|
35 | RBPU = 1; //PORTB Pull-Up disable
|
36 | INTEDG0 = 0; //ext Interrupt0 Edge Select
|
37 | INTEDG1 = 0; //ext Interrupt1 Edge Select
|
38 | INTEDG2 = 0; //ext Interrupt2 Edge Select
|
39 | TMR0IP = 0; //Timer0 Overflow Interrupt Priority
|
40 | RBIP = 1; //PB Port Change Interrupt Priority
|
41 |
|
42 | //INTCON3
|
43 | INT2IP = 0; //ext Interrupt 2 Priority
|
44 | INT1IP = 0; //ext Interrupt 1 Priority
|
45 | INT2IE = 0; //ext Interrupt 2 enable bit
|
46 | INT1IE = 0; //ext Interrupt 1 enable bit
|
47 | INT2IF = 0; //ext Interrupt 2 flag
|
48 | INT1IF = 0; //ext Interrupt 1 flag
|
49 |
|
50 | //RCON
|
51 | IPEN = 1; //Interrupt Priority Enable bit
|
52 |
|
53 | //PIRx, PIEx, IPRx
|
54 | ADIF = 0; //AD Converter Interrupt Flag
|
55 | ADIE = 0; //AD Converter Interrupt Enable
|
56 | ADIP = 0; //AD Converter Interrupt Priority
|
57 |
|
58 | RCIF = 0; //USART Receive Interrupt Flag
|
59 | RCIE = 0; //USART Receive Interrupt Enable
|
60 | RCIP = 0; //USART Receive Interrupt Priority
|
61 |
|
62 | TXIF = 0; //USART Transmit Interrupt Flag
|
63 | TXIE = 0; //USART Transmit Interrupt Enable
|
64 | TXIP = 0; //USART Transmit Interrupt Priority
|
65 |
|
66 | SSPIF = 0; //MSSP Interrupt Flag
|
67 | SSPIE = 0; //MSSP Interrupt Enable
|
68 | SSPIP = 0; //MSSP Interrupt Priority
|
69 |
|
70 | CCP1IF = 0; //CCP1 Interrupt Flag
|
71 | CCP1IE = 0; //CCP1 Interrupt Enable
|
72 | CCP1IP = 0; //CCP1 Interrupt Priority
|
73 |
|
74 | TMR2IF = 0; //TMR2 to PR2 Match Interrupt Flag
|
75 | TMR2IE = 0; //TMR2 to PR2 Match Interrupt Enable
|
76 | TMR2IP = 0; //TMR2 to PR2 Match Interrupt Priority
|
77 |
|
78 | TMR1IF = 0; //TMR1 Overflow Interrupt Flag
|
79 | TMR1IE = 0; //TMR1 Overflow Interrupt Enable
|
80 | TMR1IP = 0; //TMR1 Overflow Interrupt Priority
|
81 |
|
82 | OSCFIF = 0; //Osc Fail Interrupt Flag
|
83 | OSCFIE = 0; //Osc Fail Interrupt Enable
|
84 | OSCFIP = 0; //Osc Fail Interrupt Priority
|
85 |
|
86 | CMIF = 0; //Comparator Interrupt Flag
|
87 | CMIE = 0; //Comparator Interrupt Enable
|
88 | CMIP = 0; //Comparator Interrupt Priority
|
89 |
|
90 | EEIF = 0; //EEPROM Flash Write Interrupt Flag
|
91 | EEIE = 0; //EEPROM Flash Write Interrupt Enable
|
92 | EEIP = 0; //EEPROM Flash Write Interrupt Priority
|
93 |
|
94 | BCLIF = 0; //Bus Collision Interrupt Flag
|
95 | BCLIE = 0; //Bus Collision Interrupt Enable
|
96 | BCLIP = 0; //Bus Collision Interrupt Priority
|
97 |
|
98 | LVDIF = 0; //Low Voltage Interrupt Flag
|
99 | LVDIE = 0; //Low Voltage Interrupt Enable
|
100 | LVDIP = 0; //Low Voltage Interrupt Priority
|
101 |
|
102 | TMR3IF = 0; //TMR3 Overflow Interrupt Flag
|
103 | TMR3IE = 0; //TMR3 Overflow Interrupt Enable
|
104 | TMR3IP = 0; //TMR3 Overflow Interrupt Priority
|
105 |
|
106 | CCP2IF = 0; //CCPx Interrupt Flag
|
107 | CCP2IE = 0; //CCPx Interrupt Enable
|
108 | CCP2IP = 0; //CCPx Interrupt Priority
|
109 |
|
110 | //T0CON Timer0
|
111 | TMR0ON = 1; //Timer start
|
112 | T08BIT = 1; //8 BIT MODE
|
113 | T0CS = 0; //Timer0 Clock Source Select bit
|
114 | T0SE = 0; //Source Edge Select bit
|
115 | PSA = 0; //Timer Clock Source from Prescaler
|
116 | T0PS0 = 1; //--Prescaler
|
117 | T0PS1 = 0; //--divide by
|
118 | T0PS2 = 0; //-- 32
|
119 |
|
120 | /*INPUTS*//*OUTPUTS************************************************************/
|
121 |
|
122 | TRISB7 = 1; //Nullpunkterkennung
|