aboutsummaryrefslogtreecommitdiffstats
path: root/libmaple/nvic.h
diff options
context:
space:
mode:
authorPerry Hung <iperry@alum.mit.edu>2010-08-04 08:52:30 -0400
committerPerry Hung <iperry@alum.mit.edu>2010-08-04 08:52:30 -0400
commitd2494611156c4ba477a1bbd1b07ba0cfc14b29e4 (patch)
tree48782014152efa392ac0689c4098e089da52c82c /libmaple/nvic.h
parent2b7a1b40c96525cd4c6324f6e9d53845fb07a55f (diff)
downloadlibrambutan-d2494611156c4ba477a1bbd1b07ba0cfc14b29e4.tar.gz
librambutan-d2494611156c4ba477a1bbd1b07ba0cfc14b29e4.zip
Cleaned up wirish/time, some interrupt handling refactoring:
Fixed millis(), it was just wrong, before. Added micros(), not extensively tested. New implementation of delayMicroseconds(). Should be more consistent now. Added a handful of nvic routines to enable/disable interrupts. Cleaned up systick
Diffstat (limited to 'libmaple/nvic.h')
-rw-r--r--libmaple/nvic.h21
1 files changed, 13 insertions, 8 deletions
diff --git a/libmaple/nvic.h b/libmaple/nvic.h
index 6cad48d..d256610 100644
--- a/libmaple/nvic.h
+++ b/libmaple/nvic.h
@@ -52,8 +52,6 @@
#define NVIC_VectTab_RAM ((u32)0x20000000)
#define NVIC_VectTab_FLASH ((u32)0x08000000)
-#define NVIC_NR_INTERRUPTS 60
-
/* Where to put code */
#define USER_ADDR_ROM 0x08005000
#define USER_ADDR_RAM 0x20000C00
@@ -63,15 +61,22 @@ extern "C"{
#endif
enum {
- NVIC_USART1 = 37,
- NVIC_USART2 = 38,
- NVIC_USART3 = 39,
+ NVIC_TIMER1 = 27,
+ NVIC_TIMER2 = 28,
+ NVIC_TIMER3 = 29,
+ NVIC_TIMER4 = 30,
+ NVIC_USART1 = 37,
+ NVIC_USART2 = 38,
+ NVIC_USART3 = 39,
};
+
+#define nvic_globalirq_enable() asm volatile("cpsid i")
+#define nvic_globalirq_disable() asm volatile("cpsie i")
+
void nvic_init(void);
-void nvic_disable_interrupts(void);
-void nvic_enable_interrupt(uint32 device);
-void nvic_disable_interrupt(uint32 device);
+void nvic_irq_enable(uint32 device);
+void nvic_irq_disable(uint32 device);
#ifdef __cplusplus
}