Commit 82cec962 authored by jp7g21's avatar jp7g21
Browse files

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

parents e5949c0b 41d5eb4a
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
#include <stdlib.h> #include <stdlib.h>
#include "command.h" #include "command.h"
#define NUM_COMMANDS 20 #define NUM_COMMANDS 200
/* Cyclic buffer; when comm_start == comm_end, length = 0 */ /* Cyclic buffer; when comm_start == comm_end, length = 0 */
struct command command_buf[NUM_COMMANDS]; struct command command_buf[NUM_COMMANDS];
......
...@@ -5,6 +5,8 @@ ...@@ -5,6 +5,8 @@
#include <stdint.h> #include <stdint.h>
#define NUM_SERVOS 3 #define NUM_SERVOS 3
#define MIN_PULSE 999
#define MAX_PULSE 4999
static void reorderServos(); static void reorderServos();
static void initTimer1(); static void initTimer1();
...@@ -41,7 +43,7 @@ void initServos() ...@@ -41,7 +43,7 @@ void initServos()
void setServoAngle(uint8_t servo, int16_t arcMin) void setServoAngle(uint8_t servo, int16_t arcMin)
{ {
if (0 <= servo && servo < NUM_SERVOS) 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() 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 */
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment