Mercurial > louis > kiibohd-controller
view Lib/delay.c @ 70:23600aaa5e15
Adding initial Teensy 3 support, compiles, but not fully functional yet.
- CDC Output seems to be working
- USB Keyboard output has not been tested, but is "ready"
- UART and Timers have not been tested, or fully utilized
- Issues using Timer 0
- Initial template for MBC-55X Scan module (only module currently compatible with the arm build)
- Updated the interface to the AVR usb module for symmetry with the ARM usb module
- Much gutting was done to the Teensy 3 usb keyboard module, though not in an ideal state yet
author | Jacob Alexander <triplehaata@gmail.com> |
---|---|
date | Sun, 27 Jan 2013 01:47:52 -0500 |
parents | |
children | b61ca96b7c24 |
line wrap: on
line source
#include "delay.h" #include "mk20dx128.h" // the systick interrupt is supposed to increment this at 1 kHz rate volatile uint32_t systick_millis_count = 0; void yield(void) {}; uint32_t micros(void) { uint32_t count, current, istatus; __disable_irq(); current = SYST_CVR; count = systick_millis_count; istatus = SCB_ICSR; // bit 26 indicates if systick exception pending __enable_irq(); if ((istatus & SCB_ICSR_PENDSTSET) && current > ((F_CPU / 1000) - 50)) count++; current = ((F_CPU / 1000) - 1) - current; return count * 1000 + current / (F_CPU / 1000000); } void delay(uint32_t ms) { uint32_t start = micros(); while (1) { if ((micros() - start) >= 1000) { ms--; if (ms == 0) break; start += 1000; } yield(); } }