1 | /* PIC18f1230 tw 02.05.2013 LED */
|
2 |
|
3 |
|
4 |
|
5 |
|
6 | #include <p18cxxx.h> //Header File für PIC18F1230
|
7 |
|
8 | #pragma config OSC = INTIO2 //interner OSC wählen
|
9 | //#pragma config FOSC=HS //Taktbereich
|
10 | #pragma config PWRT=ON //Power on timer
|
11 | #pragma config BOR=OFF //Brown out reset
|
12 | #pragma config WDT=OFF //Watchdog timer
|
13 | //#pragma config LVP=OFF //Low voltage progr.
|
14 | #pragma config MCLRE=ON //Master clear reset
|
15 | //#pragma config FOSC = INTOSC_EC // internal oscillator
|
16 |
|
17 | /*TRISA = 0x50; //Port RA5 als Eingang gesetzt für MCLR
|
18 |
|
19 | TRISB = 0x20; //Port RB1 als Eingang gesetzt für LVP
|
20 | TRISB = 0x70; //Port RB6 als Eingang gesetzt für PGC
|
21 | TRISB = 0x80;*/ //Port RB7 Als Eingang gesetzt für PGD
|
22 |
|
23 | // oder auch:
|
24 |
|
25 |
|
26 |
|
27 | //Macht evtl. das Leben einfacher ?!
|
28 |
|
29 | #define LED1 LATAbits.LATA0
|
30 | #define LED2 LATAbits.LATA1
|
31 | #define LED3 LATAbits.LATA2
|
32 | #define LED4 LATAbits.LATA3
|
33 | #define LED5 LATAbits.LATA4
|
34 | #define LED6 LATBbits.LATB5
|
35 | #define LED7 LATBbits.LATB4
|
36 |
|
37 | #define LED1_ON() (LED1 = 1);
|
38 | #define LED1_OFF() (LED1 = 0);
|
39 | #define LED1_Toggle() (LED1 = !LED1);
|
40 |
|
41 | #define LED2_ON() (LED2 = 1);
|
42 | #define LED2_OFF() (LED2 = 0);
|
43 | #define LED2_Toggle() (LED2 = !LED2);
|
44 |
|
45 | #define LED3_ON() (LED3 = 1);
|
46 | #define LED3_OFF() (LED3 = 0);
|
47 | #define LED3_Toggle() (LED3 = !LED3);
|
48 |
|
49 | #define LED4_ON() (LED4 = 1);
|
50 | #define LED4_OFF() (LED4 = 0);
|
51 | #define LED4_Toggle() (LED4 = !LED4);
|
52 |
|
53 | #define LED5_ON() (LED5 = 1);
|
54 | #define LED5_OFF() (LED5 = 0);
|
55 | #define LED5_Toggle() (LED5 = !LED5);
|
56 |
|
57 | #define LED6_ON() (LED6 = 1);
|
58 | #define LED6_OFF() (LED6 = 0);
|
59 | #define LED6_Toggle() (LED6 = !LED6);
|
60 |
|
61 | #define LED7_ON() (LED7 = 1);
|
62 | #define LED7_OFF() (LED7 = 0);
|
63 | #define LED7_Toggle() (LED7 = !LED7);
|
64 |
|
65 |
|
66 | void ALLON()
|
67 | {
|
68 | LED1_ON();
|
69 | Wait();
|
70 | LED2_ON();
|
71 | Wait();
|
72 | LED3_ON();
|
73 | Wait();
|
74 | LED4_ON();
|
75 | Wait();
|
76 | LED5_ON();
|
77 | Wait();
|
78 | LED6_ON();
|
79 | Wait();
|
80 | LED7_ON();
|
81 | Wait();
|
82 | }
|
83 |
|
84 | void ALLOFF()
|
85 | {
|
86 | LED7_OFF();
|
87 | Wait();
|
88 | LED6_OFF();
|
89 | Wait();
|
90 | LED5_OFF();
|
91 | Wait();
|
92 | LED4_OFF();
|
93 | Wait();
|
94 | LED3_OFF();
|
95 | Wait();
|
96 | LED2_OFF();
|
97 | Wait();
|
98 | LED1_OFF();
|
99 | Wait();
|
100 | }
|
101 |
|
102 | void Lauflicht()
|
103 | {
|
104 | LED1_ON();
|
105 | Wait();
|
106 | LED1_Toggle();
|
107 | Wait();
|
108 | LED2_ON();
|
109 | Wait();
|
110 | LED2_Toggle();
|
111 | Wait();
|
112 | LED3_ON();
|
113 | Wait();
|
114 | LED3_Toggle();
|
115 | Wait();
|
116 | LED4_ON();
|
117 | Wait();
|
118 | LED4_Toggle();
|
119 | Wait();
|
120 | LED5_ON():
|
121 | Wait();
|
122 | LED5_Toggle();
|
123 | Wait()
|
124 | LED6_ON();
|
125 | Wait();
|
126 | LED6_Toggle();
|
127 | Wait();
|
128 | LED7_ON();
|
129 | Wait();
|
130 | LED7_Toggle();
|
131 | Wait();
|
132 | }
|
133 |
|
134 | void OC()
|
135 | {
|
136 | OSCCON = 0xF2; // internal oscillator, 8MHz
|
137 | }
|
138 | /*******************************************************************************************************/
|
139 | void Wait() //100ms
|
140 | {
|
141 |
|
142 | movlw .221;
|
143 | movwf mytime;
|
144 |
|
145 | Loop nop;nop;nop;nop;nop;nop;
|
146 |
|
147 | decfsz mytime, F;
|
148 | goto Loop;
|
149 | }
|
150 |
|
151 | /*******************************************************************************************************/
|
152 | }
|
153 | void main()
|
154 | {
|
155 | TRISB = 0xC2; //RB 1,6,7 als Eingang 1100 0010 ??????
|
156 |
|
157 | // PORT A
|
158 | LATAbits.LATA0 = 1; //Port RA0 als Ausgang gesetzt für LED1
|
159 | LATAbits.LATA1 = 1; //Port RA1 als Ausgang gesetzt für LED2
|
160 | LATAbits.LATA2 = 1; //Port RA2 als Ausgang gesetzt für LED3
|
161 | LATAbits.LATA3 = 1; //Port RA3 als Ausgang gesetzt für LED4
|
162 | LATAbits.LATA4 = 1; //Port RA4 als Ausgang gesetzt für LED5
|
163 |
|
164 | //PORT B
|
165 | LATBbits.LATB4 = 1; //PORT RB4 als Ausgang gesetzt für LED7
|
166 | LATBbits.LATB5 = 1; //PORT RB5 als Ausgang gesetzt für LED6
|
167 | OC();
|
168 | int i,j;
|
169 | for (i=0; i<=5; i++)
|
170 | {
|
171 | ALLON();
|
172 | ALLOFF();
|
173 | }
|
174 | for (j=0; j<=5; i++)
|
175 | {
|
176 | Lauflicht();
|
177 | }
|
178 |
|
179 | return();
|
180 | }
|