aboutsummaryrefslogtreecommitdiffstats
path: root/demos/AVR-AT90CANx-GCC/chcore.c
diff options
context:
space:
mode:
Diffstat (limited to 'demos/AVR-AT90CANx-GCC/chcore.c')
-rw-r--r--demos/AVR-AT90CANx-GCC/chcore.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/demos/AVR-AT90CANx-GCC/chcore.c b/demos/AVR-AT90CANx-GCC/chcore.c
index 2d0a2c0df..53fe296ac 100644
--- a/demos/AVR-AT90CANx-GCC/chcore.c
+++ b/demos/AVR-AT90CANx-GCC/chcore.c
@@ -19,8 +19,23 @@
#include <ch.h>
+void chSysPause(void) {
+
+ chThdSetPriority(IDLEPRIO);
+
+ asm volatile (
+ "ldi r18, 1 \n\t" // SE bit
+ "out 0x33, r18 \n" // SMCR
+ );
+ while (TRUE) {
+ asm volatile ("sleep\n\t");
+ }
+}
+
void chSysHalt(void) {
+ chSysLock();
+
while (TRUE)
;
}