Skip to content
Snippets Groups Projects
Commit 82cec962 authored by jp7g21's avatar jp7g21
Browse files

Merge remote-tracking branch 'refs/remotes/origin/master'

parents e5949c0b 41d5eb4a
No related branches found
No related tags found
No related merge requests found
......@@ -2,7 +2,7 @@
#include <stdlib.h>
#include "command.h"
#define NUM_COMMANDS 20
#define NUM_COMMANDS 200
/* Cyclic buffer; when comm_start == comm_end, length = 0 */
struct command command_buf[NUM_COMMANDS];
......
......@@ -5,6 +5,8 @@
#include <stdint.h>
#define NUM_SERVOS 3
#define MIN_PULSE 999
#define MAX_PULSE 4999
static void reorderServos();
static void initTimer1();
......@@ -41,7 +43,7 @@ void initServos()
void setServoAngle(uint8_t servo, int16_t arcMin)
{
if (0 <= servo && servo < NUM_SERVOS)
servos[servo].tempValue = 2999 + (int32_t) arcMin * 1000 / (180 * 60);
servos[servo].tempValue = MIN_PULSE + (int32_t) (arcMin + 180 * 60) * (MAX_PULSE - MIN_PULSE) / (360 * 60);
}
void updateServos()
......
#include "time.hpp"
#include <avr/io.h>
#include <avr/interrupt.h>
#include <stdint.h>
static uint32_t millis;
void initTime()
{
cli();
TCCR0A = (1 << WGM01); // CTC mode, TOP = OCRA
TCCR0B = (1 << CS01) | (1 << CS00); // 64th prescaler
OCR0A = 249; // set TOP for 1 kHz interrupts
TIMSK0 = (1 << OCIE0A); // enable compare A interrupt
sei();
}
uint32_t getCurrentMillis()
{
return millis;
}
ISR(TIMER0_COMPA_vect)
{
millis++;
}
#ifndef TIME_H
#define TIME_H
#include <stdint.h>
/**
* Initialises time.
*/
void initTime();
/**
* Gets the number of milliseconds since program start.
*/
uint32_t getCurrentMillis();
#endif /* TIME_H */
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment