39 lines
		
	
	
		
			545 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			545 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * time.c
 | |
|  *
 | |
|  *  Created on: 20.05.2014
 | |
|  *      Author: wn
 | |
|  */
 | |
| 
 | |
| #include <msp430g2553.h>
 | |
| #include <isr_compat.h>
 | |
| #include <stdint.h>
 | |
| 
 | |
| #include "time.h"
 | |
| #include "PontCoopScheduler.h"
 | |
| 
 | |
| 
 | |
| volatile uint32_t timestamp;
 | |
| 
 | |
| ISR(TIMER0_A0, TA0_ISR) {
 | |
|   timestamp++;
 | |
|   schUpdate();
 | |
| }
 | |
| 
 | |
| void timeInit() {
 | |
|   timestamp = 0;
 | |
| 
 | |
|   TACCR0 = 32;
 | |
|   TACCTL0 = CCIE;
 | |
|   TACTL = MC_1 | ID_0 | TASSEL_1 | TACLR;
 | |
| }
 | |
| 
 | |
| uint32_t getMillis() {
 | |
|   return timestamp;
 | |
| }
 | |
| 
 | |
| void ms_active_delay(uint16_t delay) {
 | |
|   uint32_t start = timestamp;
 | |
|   while (start + delay > timestamp);
 | |
| }
 |