Intial commit
This commit is contained in:
parent
418e557a14
commit
bcbb320289
|
@ -32,3 +32,5 @@
|
|||
*.out
|
||||
*.app
|
||||
|
||||
.vscode/
|
||||
bin/
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
MCU=atmega32
|
||||
F_CPU=8000000
|
||||
PROG=dragon_jtag
|
||||
DEBUGGER = dragon
|
||||
PORT=/dev/ttyUSB0
|
||||
|
||||
CC=avr-g++
|
||||
OBJCOPY=avr-objcopy
|
||||
CFLAGS=-Wall -g -mmcu=${MCU} -DF_CPU=${F_CPU} -I.
|
||||
TARGET=main
|
||||
SRCS=src/*.cpp
|
||||
|
||||
default: build flash
|
||||
|
||||
build:
|
||||
${CC} ${CFLAGS} -o bin/${TARGET}.bin ${SRCS}
|
||||
${CC} ${CFLAGS} -o bin/${TARGET}.elf ${SRCS}
|
||||
${OBJCOPY} -j .text -j .data -O ihex bin/${TARGET}.bin bin/${TARGET}.hex
|
||||
|
||||
flash:
|
||||
avrdude -p ${MCU} -c ${PROG} -U flash:w:bin/main.hex
|
||||
|
||||
clean:
|
||||
rm -f bin/*
|
||||
|
||||
debug: flash avarice
|
||||
sleep 1
|
||||
avr-gdb -ex "target remote :4242" bin/main.elf
|
||||
|
||||
avarice:
|
||||
avarice --file bin/main.elf --part ${MCU} --${DEBUGGER} :4242
|
|
@ -0,0 +1,59 @@
|
|||
#define F_CPU 8000000UL
|
||||
#include<avr/io.h>
|
||||
#include <util/delay.h>
|
||||
#include "servo.h"
|
||||
|
||||
int main()
|
||||
{
|
||||
servo::init();
|
||||
//Configure TIMER1
|
||||
// TCCR1A|=(1<<COM1A1)|(1<<COM1B1)|(1<<WGM11); //NON Inverted PWM
|
||||
// TCCR1B|=(1<<WGM13)|(1<<WGM12)|(1<<CS11)|(0<<CS10); //PRESCALER=1 MODE 14(FAST PWM)
|
||||
|
||||
// ICR1=19999; //fPWM=50Hz (Period = 20ms Standard).
|
||||
|
||||
// DDRD|=(1<<PD4)|(1<<PD5); //PWM Pins as Out
|
||||
|
||||
while(1)
|
||||
{
|
||||
// for(int i = 1000; i < 2000; i++) {
|
||||
// OCR1A = i;
|
||||
// _delay_ms(1);
|
||||
// }
|
||||
|
||||
// for(int i = 2000; i > 999; i--) {
|
||||
// OCR1A = i;
|
||||
// _delay_ms(1);
|
||||
// }
|
||||
|
||||
servo::pos(1000);
|
||||
_delay_ms(1000);
|
||||
servo::pos(2000);
|
||||
_delay_ms(1000);
|
||||
// OCR1A=0; //0 degree
|
||||
// _delay_ms(1000);
|
||||
|
||||
// OCR1A=600; //45 degree
|
||||
// _delay_ms(1000);
|
||||
|
||||
// OCR1A=950; //90 degree
|
||||
// _delay_ms(1000);
|
||||
|
||||
// OCR1A=1425; //135 degree
|
||||
// _delay_ms(1000);
|
||||
|
||||
// OCR1A=1900; //180 degree
|
||||
// _delay_ms(1000);
|
||||
|
||||
// OCR1A=1425; //135 degree
|
||||
// _delay_ms(1000);
|
||||
|
||||
// OCR1A=950; //90 degree
|
||||
// _delay_ms(1000);
|
||||
|
||||
// OCR1A=650; //45 degree
|
||||
// _delay_ms(1000);
|
||||
|
||||
}
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
#include "servo.h"
|
||||
|
||||
namespace servo
|
||||
{
|
||||
void init() {
|
||||
//Configure TIMER1
|
||||
TCCR1A|=(1<<COM1A1)|(1<<COM1B1)|(1<<WGM11); //NON Inverted PWM
|
||||
TCCR1B|=(1<<WGM13)|(1<<WGM12)|(1<<CS11)|(0<<CS10); //PRESCALER=1 MODE 14(FAST PWM)
|
||||
ICR1=19999; //fPWM=50Hz (Period = 20ms Standard).
|
||||
DDRD|=(1<<PD4)|(1<<PD5); //PWM Pins as Out
|
||||
}
|
||||
|
||||
void pos(int pos) {
|
||||
OCR1A = pos;
|
||||
}
|
||||
} // namespace servo
|
|
@ -0,0 +1,8 @@
|
|||
#pragma once
|
||||
#include <avr/io.h>
|
||||
|
||||
namespace servo
|
||||
{
|
||||
void init();
|
||||
void pos(int pos);
|
||||
} // namespace servo
|
Loading…
Reference in New Issue