Hallo
ich habe ein Problem mit diesem Code in Bascom.
1 | $regfile = "M8def.dat"
|
2 | $crystal = 1000000
|
3 | $hwstack = 100
|
4 | $swstack = 100
|
5 | $framesize = 100
|
6 |
|
7 | Dim Ad As Word
|
8 | Dim Ad_triac As Word
|
9 |
|
10 | Config Portb.1 = Output
|
11 | config Portb.2 = Output
|
12 | Config Portb.3 = Output
|
13 | Config Portb.4 = Output
|
14 |
|
15 |
|
16 | Config Portb.1 = Output
|
17 | Const Timer1_preload = 64559
|
18 | Config Timer1 = Timer , Prescale = 1024
|
19 | Enable Timer1
|
20 | Stop Timer1
|
21 | Timer1 = Timer1_preload
|
22 | On Timer1 Isr_timer1
|
23 | Enable Interrupts
|
24 | Config Adc = Single , Prescaler = Auto , Reference = Avcc
|
25 | Start Adc
|
26 |
|
27 | On Int0 On_int0
|
28 | Config Int0 = Falling
|
29 | Enable Int0
|
30 |
|
31 |
|
32 | Do
|
33 | Portb.1 = 0
|
34 | Portb.2 = 0
|
35 |
|
36 |
|
37 |
|
38 |
|
39 |
|
40 | Loop
|
41 |
|
42 | Isr_timer1:
|
43 | Stop Timer1
|
44 | Timer1 = Timer1_preload
|
45 | PortB.1 = 1
|
46 | Return
|
47 |
|
48 | On_int0:
|
49 |
|
50 | Start Timer1
|
51 |
|
52 | Portb.2 = 1
|
53 | Return
|
54 |
|
55 | End 'end program
|
Bei einem interrupt geht eine Led an, wie sie es soll. Gleichzeitig wird
auch ein Timer gestartet, der wenn er überläuft eine zweite Led zum
leuchten bringen soll. ich habe es so angedacht, dass diese nach 9ms
angehen soll. allerdings tut sie es erst nach 1. Sekunde.
Was habe ich falsch gemacht??
Niclas