Hallo Forum,
ich bin neu hier, und auch neu in der MC-programmierung, welcher ich
mich im Rahmen meines Studiums widmen muss. Die Aufgabe besteht darin,
an P2 eine LED timergesteuert blinken zu lassen (Sekundentakt), und
genau hier haeng ich fest. Es blinkt einfach nicht und der Debugger
(µVision 3) hilft mir auch nicht weiter. Hier zunaechst mal mein Code:
1 | /****************************************************
|
2 | * Program: blink.c
|
3 | * ...toggles a LED connected
|
4 | * to Pin 57 (Port P2.8)...
|
5 | * Embedded Systems / Technikum Wien
|
6 | ***************************************************/
|
7 | #include <reg167.h>
|
8 | #include <intrins.h>
|
9 |
|
10 | sbit DirPortP28 = DP2^8 ; // define direction bit
|
11 | sbit DirT3OUT = DP3^3; // Timer output
|
12 | sbit PortP28 = P2^8 ; // define port bit
|
13 |
|
14 | void timX_isr (void) interrupt T3INT = 0x23 {
|
15 | PortP28 ^= 1;
|
16 | }
|
17 |
|
18 | void init(void) {
|
19 | DirPortP28 = 1 ; // set Port2.8 direction to output
|
20 | DirT3OUT = 1; //direction bit of timer set to out
|
21 | T3CON = 0x0144; // timer configuration, binary: 10 1 000 100, description in usermanual cap. 9
|
22 | T3 = 0; // reset Timer
|
23 | IEN = 1; // enable interrupts
|
24 | }
|
25 |
|
26 | void main(void) {
|
27 | init();
|
28 | while (1) { // Endless Loop
|
29 | _idle_();
|
30 | } ;
|
31 | }
|
Die Sache ist, dass ich keine Ahnung hab, ob der Interrupt ueberhaupüt
getriggert wird und nur die LED nicht angeht oder ob schon am IRQ was
nicht stimmt. Der Compiler hat dazu keine Meinung, syntaktisch scheint
das Programm so richtig zu sein. Kann mir jemand einen Tipp geben?
Danke sehr.