Code for bug report; KL25Z not running when PTA4 hasn't been high for > 400ms
- First revision: error, KL25Z will not boot when PTA4 is low
- Second revision: solved by adding NMI handler (thanks Erik Olieman). This is a fix when using mbed compiled library
- Third revision: solved by changing startup file. NMI handler no longer needed. This can now only be used when using mbed-src
main.cpp@1:ebb9ac70fa32, 2013-10-16 (annotated)
- Committer:
- vsluiter
- Date:
- Wed Oct 16 07:45:13 2013 +0000
- Revision:
- 1:ebb9ac70fa32
- Parent:
- 0:1ee47a3d42c5
This program is working! Thanks to Erik Olieman for pointing out the missing "extern 'C'"
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
vsluiter | 0:1ee47a3d42c5 | 1 | #include "mbed.h" |
vsluiter | 0:1ee47a3d42c5 | 2 | |
vsluiter | 1:ebb9ac70fa32 | 3 | extern "C" void NMI_Handler() { |
vsluiter | 1:ebb9ac70fa32 | 4 | DigitalIn bla(PTA4); |
vsluiter | 1:ebb9ac70fa32 | 5 | } |
vsluiter | 1:ebb9ac70fa32 | 6 | |
vsluiter | 0:1ee47a3d42c5 | 7 | DigitalOut rled(LED_RED); |
vsluiter | 0:1ee47a3d42c5 | 8 | DigitalOut bled(LED_BLUE); |
vsluiter | 0:1ee47a3d42c5 | 9 | DigitalOut gled(LED_GREEN); |
vsluiter | 1:ebb9ac70fa32 | 10 | |
vsluiter | 1:ebb9ac70fa32 | 11 | |
vsluiter | 0:1ee47a3d42c5 | 12 | |
vsluiter | 0:1ee47a3d42c5 | 13 | void falling() |
vsluiter | 0:1ee47a3d42c5 | 14 | { |
vsluiter | 0:1ee47a3d42c5 | 15 | if(bled) |
vsluiter | 0:1ee47a3d42c5 | 16 | bled =0; |
vsluiter | 0:1ee47a3d42c5 | 17 | else |
vsluiter | 0:1ee47a3d42c5 | 18 | bled = 1; |
vsluiter | 0:1ee47a3d42c5 | 19 | } |
vsluiter | 0:1ee47a3d42c5 | 20 | |
vsluiter | 0:1ee47a3d42c5 | 21 | |
vsluiter | 0:1ee47a3d42c5 | 22 | void rising() |
vsluiter | 0:1ee47a3d42c5 | 23 | { |
vsluiter | 0:1ee47a3d42c5 | 24 | if(gled) |
vsluiter | 0:1ee47a3d42c5 | 25 | gled =0; |
vsluiter | 0:1ee47a3d42c5 | 26 | else |
vsluiter | 0:1ee47a3d42c5 | 27 | gled = 1; |
vsluiter | 0:1ee47a3d42c5 | 28 | } |
vsluiter | 0:1ee47a3d42c5 | 29 | |
vsluiter | 0:1ee47a3d42c5 | 30 | int main() |
vsluiter | 0:1ee47a3d42c5 | 31 | { |
vsluiter | 1:ebb9ac70fa32 | 32 | InterruptIn test(PTA4); |
vsluiter | 0:1ee47a3d42c5 | 33 | test.fall(falling); |
vsluiter | 0:1ee47a3d42c5 | 34 | test.rise(rising); |
vsluiter | 0:1ee47a3d42c5 | 35 | while(1) { |
vsluiter | 0:1ee47a3d42c5 | 36 | rled = 1; |
vsluiter | 0:1ee47a3d42c5 | 37 | wait(0.2); |
vsluiter | 0:1ee47a3d42c5 | 38 | rled = 0; |
vsluiter | 0:1ee47a3d42c5 | 39 | wait(0.2); |
vsluiter | 0:1ee47a3d42c5 | 40 | } |
vsluiter | 0:1ee47a3d42c5 | 41 | } |