Adding files
This commit is contained in:
		
							parent
							
								
									5002c16c1d
								
							
						
					
					
						commit
						759597d8f9
					
				
							
								
								
									
										11
									
								
								ADC/main.c
								
								
								
								
							
							
						
						
									
										11
									
								
								ADC/main.c
								
								
								
								
							| 
						 | 
				
			
			@ -7,13 +7,16 @@ int main(void)
 | 
			
		|||
{
 | 
			
		||||
	 DDRL = 0xff;//port L direction: output //pins- 49:42
 | 
			
		||||
     DDRC = 0xff;//port C direction: output //pins- 37:30
 | 
			
		||||
     DDRA = 0x00;//port A direction: input //pins- 22:29 
 | 
			
		||||
     //DDRA = 0x00;//port A direction: input //pins- 22:29 
 | 
			
		||||
     ADCSRA = 0x87;// ADC enabled and prescaler=128
 | 
			
		||||
     ADMUX = 0xC0;// input at ADC0// data is right-justified
 | 
			
		||||
     ADMUX = 0x61;// Ref= Vcc// data is left-justified //ADC0 is source pin
 | 
			
		||||
     while(1)
 | 
			
		||||
     {
 | 
			
		||||
     	ADCSRA |= (1<<ADSC); //to start conversion
 | 
			
		||||
     	while(ADCSRA && (1<<ADIF)==0);// waiting for conversion to finish
 | 
			
		||||
        //ADIF=0 ifu wanna reset, otherwise you keep it as 1 so that conversion doesnt start again
 | 
			
		||||
     	//ADCSRA |= (1<<ADSC); //to start conversion, we set ADSC bit to 1
 | 
			
		||||
        ADCSRA |= 0x40; //ADSC=1
 | 
			
		||||
     	//while(ADCSRA && (1<<ADIF)==0);// waiting for conversion to finish
 | 
			
		||||
        while(ADIF==0);
 | 
			
		||||
     	PORTL = ADCL;
 | 
			
		||||
     	PORTC = ADCH;
 | 
			
		||||
     }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										
											BIN
										
									
								
								ADC/main.elf
								
								
								
								
							
							
						
						
									
										
											BIN
										
									
								
								ADC/main.elf
								
								
								
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										10
									
								
								ADC/main.hex
								
								
								
								
							
							
						
						
									
										10
									
								
								ADC/main.hex
								
								
								
								
							| 
						 | 
				
			
			@ -13,9 +13,9 @@
 | 
			
		|||
:1000C0000C947E000C947E000C947E000C947E00B8
 | 
			
		||||
:1000D0000C947E000C947E000C947E000C947E00A8
 | 
			
		||||
:1000E0000C947E0011241FBECFEFD1E2DEBFCDBF46
 | 
			
		||||
:1000F00000E00CBF0E9480000C949A000C94000059
 | 
			
		||||
:100100008FEF80930A0187B911B887E880937A004E
 | 
			
		||||
:1001100080EC80937C0080917A00806480937A00E8
 | 
			
		||||
:1001200080917A008091780080930B018091790012
 | 
			
		||||
:0801300088B9F1CFF894FFCF6C
 | 
			
		||||
:1000F00000E00CBF0E9480000C9497000C9400005C
 | 
			
		||||
:100100008FEF80930A0187B987E880937A0081E6B0
 | 
			
		||||
:1001100080937C0080917A00806480937A00809143
 | 
			
		||||
:10012000780080930B018091790088B9F3CFF8941F
 | 
			
		||||
:02013000FFCFFF
 | 
			
		||||
:00000001FF
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										
											BIN
										
									
								
								ADC/main.o
								
								
								
								
							
							
						
						
									
										
											BIN
										
									
								
								ADC/main.o
								
								
								
								
							
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -12,8 +12,8 @@ Bit 4= ADIF: ADC Interrupt Flag- This bit is set when an ADC conversion complete
 | 
			
		|||
Bit [2:0] = 111 = Prescaler-128
 | 
			
		||||
 | 
			
		||||
ADMUX: ADC Multiplexer = 0xC0
 | 
			
		||||
Bit [7:6] = 11 = Vref= 2.56V
 | 
			
		||||
Bit 5 = 0 = Result(10-bits-wide) is right-justified
 | 
			
		||||
Bit [7:6] = 01 = Vref= AVcc = 5V
 | 
			
		||||
Bit 5 = 1 = Result(10-bits-wide) is left-justified
 | 
			
		||||
Bit [4:0] = 00000 = Input at ADC0
 | 
			
		||||
 | 
			
		||||
ADCL: ADC Data Register Lower= stores the lower 8 bits of result of conversion
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -10,7 +10,7 @@ int main(void)
 | 
			
		|||
    //pin 37-port C0 ; C7- pin 30
 | 
			
		||||
     DDRC = 0xff;//port C direction: output
 | 
			
		||||
     DDRA = 0xff;//port A direction: output
 | 
			
		||||
     DDRB = 0x00;//pin 10-13: Port B4 to B7 //direction: input
 | 
			
		||||
     DDRB = 0x00;//pin 10-13: Port B4 to B7 //direction: input; pin 53-50: Port B0 to B3
 | 
			
		||||
     //PINB = 0x00;//clearing PINB register
 | 
			
		||||
     //PORTA = PINB;
 | 
			
		||||
     //while(1);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,57 +0,0 @@
 | 
			
		|||
//GPIO- Input Configuration
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#include <avr/io.h>
 | 
			
		||||
#define F_CPU 16000000//16MHz
 | 
			
		||||
#include <util/delay.h>
 | 
			
		||||
 | 
			
		||||
int main(void)
 | 
			
		||||
{
 | 
			
		||||
    //pin 37-port C0 ; C7- pin 30
 | 
			
		||||
     DDRC = 0xff;//port C direction: output
 | 
			
		||||
     DDRA = 0xff;//port A direction: output
 | 
			
		||||
     DDRB = 0x00;//pin 10-13: Port B4 to B7 //direction: input
 | 
			
		||||
     //PINB = 0x00;//clearing PINB register
 | 
			
		||||
     //PORTA = PINB;
 | 
			
		||||
     //while(1);
 | 
			
		||||
 | 
			
		||||
    //enabling pull-up resistors//use=?//default output when pull-up enabled=high
 | 
			
		||||
    PORTB = 0xff;
 | 
			
		||||
    //PORTC = 0xff;
 | 
			
		||||
    //PORTB=0x00;//disabling pull-up resistors?//does it help or not?
 | 
			
		||||
    while(1)
 | 
			
		||||
    {
 | 
			
		||||
        PORTA = PINB;//PortA= pin 22-29
 | 
			
		||||
        if(PINB==0xFF)
 | 
			
		||||
        {
 | 
			
		||||
            PORTC = 0x01;
 | 
			
		||||
            _delay_ms(5);
 | 
			
		||||
            PORTC = 0x00;
 | 
			
		||||
            _delay_ms(5);
 | 
			
		||||
        }//f=100Hz
 | 
			
		||||
        else if(PINB==0x00)
 | 
			
		||||
        {
 | 
			
		||||
            PORTC = 0x01;
 | 
			
		||||
            _delay_ms(10);
 | 
			
		||||
            PORTC = 0x00;
 | 
			
		||||
            _delay_ms(10);
 | 
			
		||||
        }//f=50Hz
 | 
			
		||||
        /*else if(PINB==0x10)
 | 
			
		||||
        {
 | 
			
		||||
            PORTC = 0x01;
 | 
			
		||||
            _delay_ms(7);
 | 
			
		||||
            PORTC = 0x00;
 | 
			
		||||
            _delay_ms(7);
 | 
			
		||||
        }//f=approx 75Hz
 | 
			
		||||
         else if(PINB==0x20)
 | 
			
		||||
        {
 | 
			
		||||
            PORTC = 0x01;
 | 
			
		||||
            _delay_ms(20);
 | 
			
		||||
            PORTC = 0x00;
 | 
			
		||||
            _delay_ms(20);
 | 
			
		||||
        }//f=25Hz
 | 
			
		||||
        */
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
}
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -0,0 +1,14 @@
 | 
			
		|||
#include <avr/io.h>
 | 
			
		||||
#define F_CPU 16000000//16MHz
 | 
			
		||||
#include <util/delay.h>
 | 
			
		||||
 | 
			
		||||
int main(void)
 | 
			
		||||
{
 | 
			
		||||
	 DDRL &= 0xfe;//port L direction: input; pin 49
 | 
			
		||||
	 PORTL |= 0x01;//L01 PU resistor activated
 | 
			
		||||
     DDRC |= 0x01;//pin 37: pin C7 //direction: output
 | 
			
		||||
     while(1)
 | 
			
		||||
     {
 | 
			
		||||
     	PORTC = (PINL &= 0x01);
 | 
			
		||||
     }
 | 
			
		||||
 }
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -13,11 +13,8 @@
 | 
			
		|||
:1000C0000C947E000C947E000C947E000C947E00B8
 | 
			
		||||
:1000D0000C947E000C947E000C947E000C947E00A8
 | 
			
		||||
:1000E0000C947E0011241FBECFEFD1E2DEBFCDBF46
 | 
			
		||||
:1000F00000E00CBF0E9480000C94AA000C94000049
 | 
			
		||||
:100100008FEF87B981B914B885B981E093B192B9FD
 | 
			
		||||
:1001100093B19F3F69F488B9EFE1FEE43197F1F7BD
 | 
			
		||||
:1001200000C0000018B8EFE1FEE43197F1F70FC00E
 | 
			
		||||
:1001300093B19111EBCF88B9EFE3FCE93197F1F777
 | 
			
		||||
:1001400000C0000018B8EFE3FCE93197F1F700C0F8
 | 
			
		||||
:080150000000DCCFF894FFCFA2
 | 
			
		||||
:1000F00000E00CBF0E9480000C9492000C94000061
 | 
			
		||||
:1001000080910A018E7F80930A0180910B018160AA
 | 
			
		||||
:1001100080930B01389A80910901817080930901C5
 | 
			
		||||
:0801200088B9F9CFF894FFCF74
 | 
			
		||||
:00000001FF
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -4,18 +4,19 @@
 | 
			
		|||
int main(void)
 | 
			
		||||
{
 | 
			
		||||
	DDRA=0xFF;//Port A Output
 | 
			
		||||
	DDRB=0xFF;//Port B Output
 | 
			
		||||
	PORTD=0xFF;//activate pull-up
 | 
			
		||||
	DDRC=0xFF;//Port C Output
 | 
			
		||||
	PORTD=0xFF;//activate pull-up//ICP1 in pin PD4= grey 47
 | 
			
		||||
	while(1)
 | 
			
		||||
	{
 | 
			
		||||
		TCCR1A=0x00;//Normal mode
 | 
			
		||||
		TCCR1B=0x41;//rising edge, no pre-scaler, no noise canceller
 | 
			
		||||
		//TCCR1B=0x41;//rising edge, no pre-scaler, no noise canceller
 | 
			
		||||
		TCCR1B=0x45;//rising edge, pre-scaler is max=1024, no noise canceller
 | 
			
		||||
		//while(TIFR1 && (1<<ICF1)==0);//
 | 
			
		||||
		//TIFR1=(1<<ICF1);//clear ICF1
 | 
			
		||||
		while(TIFR1 && 0x20 == 0x00);//waiting for ICF1 Flag to be set
 | 
			
		||||
		//ICF1=0;//why not this command?
 | 
			
		||||
		TIFR1=(1<<ICF1);
 | 
			
		||||
		PORTA=ICR1L;//
 | 
			
		||||
		PORTB=ICR1H;//	
 | 
			
		||||
		PORTA=ICR1L;//check output in pins 22-29(A7=29) 
 | 
			
		||||
		PORTC=ICR1H;//check output in pins 37-30(C0=30)	
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -14,7 +14,7 @@
 | 
			
		|||
:1000D0000C947E000C947E000C947E000C947E00A8
 | 
			
		||||
:1000E0000C947E0011241FBECFEFD1E2DEBFCDBF46
 | 
			
		||||
:1000F00000E00CBF0E9480000C9493000C94000060
 | 
			
		||||
:100100008FEF81B984B98BB921E490E2109280001D
 | 
			
		||||
:100100008FEF81B987B98BB925E490E21092800016
 | 
			
		||||
:100110002093810086B396BB8091860082B980913E
 | 
			
		||||
:0A012000870085B9F3CFF894FFCFF4
 | 
			
		||||
:0A012000870088B9F3CFF894FFCFF1
 | 
			
		||||
:00000001FF
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -2,7 +2,7 @@ Registers involved:
 | 
			
		|||
 | 
			
		||||
GPIO:
 | 
			
		||||
DDRA: Data Direction Register for Port A= 0xFF for output
 | 
			
		||||
DDRB: Data Direction Register for Port B= 0xFF for output
 | 
			
		||||
DDRC: Data Direction Register for Port C= 0xFF for output
 | 
			
		||||
PORTD: Port D Data Register= set as 0xFF to activate pull up registers
 | 
			
		||||
 | 
			
		||||
Input Capture Unit(ICU):
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,4 +13,3 @@ max current LED can tolerate:
 | 
			
		|||
Resistance offered within the board(if any):
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Hi- change made
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -6,14 +6,17 @@ int main(void)
 | 
			
		|||
{
 | 
			
		||||
	DDRB = 0xFF;//Port B set as output
 | 
			
		||||
	
 | 
			
		||||
	OCR0A= 0x7F;//50 percent of 255=duty cycle
 | 
			
		||||
	OCR0A= 0x7F;//50 percent of 255=duty cycle//decimal=127
 | 
			
		||||
	TCCR0A = 0x83;
 | 
			
		||||
	TCCR0B = 0x03;//prescaler = 64 for 1kHz
 | 
			
		||||
	//TCCR0B = 0x03;//prescaler = 64 for 1kHz
 | 
			
		||||
	TCCR0B = 0x02;//prescaler = 8 for 8kHz
 | 
			
		||||
	//output at OC0A=pin 13
 | 
			
		||||
 | 
			
		||||
	OCR2A= 0x87;//duty cycle=  47 percent, value= 0.53*255=135
 | 
			
		||||
	//OCR2A= 0x87;//duty cycle=  47 percent, value= 0.53*255=135
 | 
			
		||||
	OCR2A= 0x83;//duty cycle=  48 percent, value= 0.52*255=131
 | 
			
		||||
	TCCR2A = 0xC3;//inverting PWM
 | 
			
		||||
	TCCR2B = 0x04;//prescaler = 64 for 1 kHz
 | 
			
		||||
	//TCCR2B = 0x04;//prescaler = 64 for 1 kHz
 | 
			
		||||
	TCCR2B = 0x02;//prescaler = 8 for 8kHz
 | 
			
		||||
	//output at OC2A=pin 10
 | 
			
		||||
 | 
			
		||||
	while(1);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -13,8 +13,8 @@
 | 
			
		|||
:1000C0000C947E000C947E000C947E000C947E00B8
 | 
			
		||||
:1000D0000C947E000C947E000C947E000C947E00A8
 | 
			
		||||
:1000E0000C947E0011241FBECFEFD1E2DEBFCDBF46
 | 
			
		||||
:1000F00000E00CBF0E9480000C9492000C94000061
 | 
			
		||||
:100100008FEF84B98FE787BD83E884BD83E085BD29
 | 
			
		||||
:1001100087E88093B30083EC8093B00084E0809301
 | 
			
		||||
:08012000B100FFCFF894FFCFFE
 | 
			
		||||
:1000F00000E00CBF0E9480000C9490000C94000063
 | 
			
		||||
:100100008FEF84B98FE787BD93E894BD82E085BD0A
 | 
			
		||||
:100110009093B30093EC9093B0008093B100FFCF25
 | 
			
		||||
:04012000F894FFCF81
 | 
			
		||||
:00000001FF
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -31,4 +31,6 @@ The most important nonlinearity is caused by the necessary
 | 
			
		|||
blanking time between top and bottom switch to avoid inverter
 | 
			
		||||
leg shoot-through of the DC bus circuit. The type of the switch
 | 
			
		||||
and pre-driver characteristics determine amount of the
 | 
			
		||||
necessary blank time.
 | 
			
		||||
necessary blank time.
 | 
			
		||||
 | 
			
		||||
for a difference of 2 decimal numbers in binary, and frequency of 8kHz, we obtain a deadtime of 1.5 microseconds
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,106 @@
 | 
			
		|||
# simple AVR Makefile
 | 
			
		||||
#
 | 
			
		||||
# written by michael cousins (http://github.com/mcous)
 | 
			
		||||
# released to the public domain
 | 
			
		||||
 | 
			
		||||
# Makefile
 | 
			
		||||
#
 | 
			
		||||
# targets:
 | 
			
		||||
#   all:    compiles the source code
 | 
			
		||||
#   test:   tests the isp connection to the mcu
 | 
			
		||||
#   flash:  writes compiled hex file to the mcu's flash memory
 | 
			
		||||
#   fuse:   writes the fuse bytes to the MCU
 | 
			
		||||
#   disasm: disassembles the code for debugging
 | 
			
		||||
#   clean:  removes all .hex, .elf, and .o files in the source code and library directories
 | 
			
		||||
 | 
			
		||||
# parameters (change this stuff accordingly)
 | 
			
		||||
# project name
 | 
			
		||||
PRJ = main
 | 
			
		||||
# avr mcu
 | 
			
		||||
MCU = atmega2560
 | 
			
		||||
# mcu clock frequency
 | 
			
		||||
CLK = 16000000
 | 
			
		||||
# avr programmer (and port if necessary)
 | 
			
		||||
# e.g. PRG = usbtiny -or- PRG = arduino -P /dev/tty.usbmodem411
 | 
			
		||||
PRG = wiring -P /dev/ttyACM0
 | 
			
		||||
# fuse values for avr: low, high, and extended
 | 
			
		||||
# these values are from an Arduino Uno (ATMega328P)
 | 
			
		||||
# see http://www.engbedded.com/fusecalc/ for other MCUs and options
 | 
			
		||||
LFU = 0xFF
 | 
			
		||||
HFU = 0xD0
 | 
			
		||||
EFU = 0xFD
 | 
			
		||||
# program source files (not including external libraries)
 | 
			
		||||
SRC = $(PRJ).c
 | 
			
		||||
# where to look for external libraries (consisting of .c/.cpp files and .h files)
 | 
			
		||||
# e.g. EXT = ../../EyeToSee ../../YouSART
 | 
			
		||||
EXT =
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#################################################################################################
 | 
			
		||||
# \/ stuff nobody needs to worry about until such time that worrying about it is appropriate \/ #
 | 
			
		||||
#################################################################################################
 | 
			
		||||
 | 
			
		||||
# include path
 | 
			
		||||
INCLUDE := $(foreach dir, $(EXT), -I$(dir))
 | 
			
		||||
# c flags
 | 
			
		||||
CFLAGS    = -Wall -Os -DF_CPU=$(CLK) -mmcu=$(MCU) $(INCLUDE)
 | 
			
		||||
# any aditional flags for c++
 | 
			
		||||
CPPFLAGS =
 | 
			
		||||
 | 
			
		||||
# executables
 | 
			
		||||
AVRDUDE = avrdude  -C /usr/share/arduino/hardware/tools/avrdude.conf -c $(PRG) -p $(MCU)  -b 115200 -D
 | 
			
		||||
OBJCOPY = avr-objcopy
 | 
			
		||||
OBJDUMP = avr-objdump
 | 
			
		||||
SIZE    = avr-size --format=avr --mcu=$(MCU)
 | 
			
		||||
CC      = avr-gcc
 | 
			
		||||
 | 
			
		||||
# generate list of objects
 | 
			
		||||
CFILES    = $(filter %.c, $(SRC))
 | 
			
		||||
EXTC     := $(foreach dir, $(EXT), $(wildcard $(dir)/*.c))
 | 
			
		||||
CPPFILES  = $(filter %.cpp, $(SRC))
 | 
			
		||||
EXTCPP   := $(foreach dir, $(EXT), $(wildcard $(dir)/*.cpp))
 | 
			
		||||
OBJ       = $(CFILES:.c=.o) $(EXTC:.c=.o) $(CPPFILES:.cpp=.o) $(EXTCPP:.cpp=.o)
 | 
			
		||||
 | 
			
		||||
# user targets
 | 
			
		||||
# compile all files
 | 
			
		||||
all: $(PRJ).hex
 | 
			
		||||
 | 
			
		||||
# test programmer connectivity
 | 
			
		||||
test:
 | 
			
		||||
	$(AVRDUDE) -v
 | 
			
		||||
 | 
			
		||||
# flash program to mcu
 | 
			
		||||
flash: all
 | 
			
		||||
	$(AVRDUDE) -U flash:w:$(PRJ).hex:i
 | 
			
		||||
 | 
			
		||||
# write fuses to mcu
 | 
			
		||||
fuse:
 | 
			
		||||
	$(AVRDUDE) -U lfuse:w:$(LFU):m -U hfuse:w:$(HFU):m -U efuse:w:$(EFU):m
 | 
			
		||||
 | 
			
		||||
# generate disassembly files for debugging
 | 
			
		||||
disasm: $(PRJ).elf
 | 
			
		||||
	$(OBJDUMP) -d $(PRJ).elf
 | 
			
		||||
 | 
			
		||||
# remove compiled files
 | 
			
		||||
clean:
 | 
			
		||||
	rm -f *.hex *.elf *.o
 | 
			
		||||
	$(foreach dir, $(EXT), rm -f $(dir)/*.o;)
 | 
			
		||||
 | 
			
		||||
# other targets
 | 
			
		||||
# objects from c files
 | 
			
		||||
.c.o:
 | 
			
		||||
	$(CC) $(CFLAGS) -c $< -o $@
 | 
			
		||||
 | 
			
		||||
# objects from c++ files
 | 
			
		||||
.cpp.o:
 | 
			
		||||
	$(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
 | 
			
		||||
 | 
			
		||||
# elf file
 | 
			
		||||
$(PRJ).elf: $(OBJ)
 | 
			
		||||
	$(CC) $(CFLAGS) -o $(PRJ).elf $(OBJ)
 | 
			
		||||
 | 
			
		||||
# hex file
 | 
			
		||||
$(PRJ).hex: $(PRJ).elf
 | 
			
		||||
	rm -f $(PRJ).hex
 | 
			
		||||
	$(OBJCOPY) -j .text -j .data -O ihex $(PRJ).elf $(PRJ).hex
 | 
			
		||||
	$(SIZE) $(PRJ).elf
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,387 @@
 | 
			
		|||
#define F_CPU 16000000//16Mhz
 | 
			
		||||
#define MS_DELAY 1000
 | 
			
		||||
#include <avr/io.h>
 | 
			
		||||
#include <util/delay.h>
 | 
			
		||||
int main(void)
 | 
			
		||||
{
 | 
			
		||||
	DDRB = 0xFF;//Port B set as output
 | 
			
		||||
	//DDRB |= (1 <<3);//Port B(0:3) set as output
 | 
			
		||||
	uint16_t testArray[360]={0x80,
 | 
			
		||||
0x82,
 | 
			
		||||
0x84,
 | 
			
		||||
0x86,
 | 
			
		||||
0x88,
 | 
			
		||||
0x8b,
 | 
			
		||||
0x8d,
 | 
			
		||||
0x8f,
 | 
			
		||||
0x91,
 | 
			
		||||
0x93,
 | 
			
		||||
0x96,
 | 
			
		||||
0x98,
 | 
			
		||||
0x9a,
 | 
			
		||||
0x9c,
 | 
			
		||||
0x9e,
 | 
			
		||||
0xa0,
 | 
			
		||||
0xa3,
 | 
			
		||||
0xa5,
 | 
			
		||||
0xa7,
 | 
			
		||||
0xa9,
 | 
			
		||||
0xab,
 | 
			
		||||
0xad,
 | 
			
		||||
0xaf,
 | 
			
		||||
0xb1,
 | 
			
		||||
0xb3,
 | 
			
		||||
0xb5,
 | 
			
		||||
0xb7,
 | 
			
		||||
0xb9,
 | 
			
		||||
0xbb,
 | 
			
		||||
0xbd,
 | 
			
		||||
0xbf,
 | 
			
		||||
0xc1,
 | 
			
		||||
0xc3,
 | 
			
		||||
0xc5,
 | 
			
		||||
0xc7,
 | 
			
		||||
0xc9,
 | 
			
		||||
0xca,
 | 
			
		||||
0xcc,
 | 
			
		||||
0xce,
 | 
			
		||||
0xd0,
 | 
			
		||||
0xd1,
 | 
			
		||||
0xd3,
 | 
			
		||||
0xd5,
 | 
			
		||||
0xd6,
 | 
			
		||||
0xd8,
 | 
			
		||||
0xda,
 | 
			
		||||
0xdb,
 | 
			
		||||
0xdd,
 | 
			
		||||
0xde,
 | 
			
		||||
0xe0,
 | 
			
		||||
0xe1,
 | 
			
		||||
0xe3,
 | 
			
		||||
0xe4,
 | 
			
		||||
0xe5,
 | 
			
		||||
0xe7,
 | 
			
		||||
0xe8,
 | 
			
		||||
0xe9,
 | 
			
		||||
0xea,
 | 
			
		||||
0xec,
 | 
			
		||||
0xed,
 | 
			
		||||
0xee,
 | 
			
		||||
0xef,
 | 
			
		||||
0xf0,
 | 
			
		||||
0xf1,
 | 
			
		||||
0xf2,
 | 
			
		||||
0xf3,
 | 
			
		||||
0xf4,
 | 
			
		||||
0xf5,
 | 
			
		||||
0xf6,
 | 
			
		||||
0xf7,
 | 
			
		||||
0xf7,
 | 
			
		||||
0xf8,
 | 
			
		||||
0xf9,
 | 
			
		||||
0xf9,
 | 
			
		||||
0xfa,
 | 
			
		||||
0xfb,
 | 
			
		||||
0xfb,
 | 
			
		||||
0xfc,
 | 
			
		||||
0xfc,
 | 
			
		||||
0xfd,
 | 
			
		||||
0xfd,
 | 
			
		||||
0xfd,
 | 
			
		||||
0xfe,
 | 
			
		||||
0xfe,
 | 
			
		||||
0xfe,
 | 
			
		||||
0xff,
 | 
			
		||||
0xff,
 | 
			
		||||
0xff,
 | 
			
		||||
0xff,
 | 
			
		||||
0xff,
 | 
			
		||||
0xff,
 | 
			
		||||
0xff,
 | 
			
		||||
0xff,
 | 
			
		||||
0xff,
 | 
			
		||||
0xff,
 | 
			
		||||
0xff,
 | 
			
		||||
0xfe,
 | 
			
		||||
0xfe,
 | 
			
		||||
0xfe,
 | 
			
		||||
0xfd,
 | 
			
		||||
0xfd,
 | 
			
		||||
0xfd,
 | 
			
		||||
0xfc,
 | 
			
		||||
0xfc,
 | 
			
		||||
0xfb,
 | 
			
		||||
0xfb,
 | 
			
		||||
0xfa,
 | 
			
		||||
0xf9,
 | 
			
		||||
0xf9,
 | 
			
		||||
0xf8,
 | 
			
		||||
0xf7,
 | 
			
		||||
0xf7,
 | 
			
		||||
0xf6,
 | 
			
		||||
0xf5,
 | 
			
		||||
0xf4,
 | 
			
		||||
0xf3,
 | 
			
		||||
0xf2,
 | 
			
		||||
0xf1,
 | 
			
		||||
0xf0,
 | 
			
		||||
0xef,
 | 
			
		||||
0xee,
 | 
			
		||||
0xed,
 | 
			
		||||
0xec,
 | 
			
		||||
0xea,
 | 
			
		||||
0xe9,
 | 
			
		||||
0xe8,
 | 
			
		||||
0xe7,
 | 
			
		||||
0xe5,
 | 
			
		||||
0xe4,
 | 
			
		||||
0xe3,
 | 
			
		||||
0xe1,
 | 
			
		||||
0xe0,
 | 
			
		||||
0xde,
 | 
			
		||||
0xdd,
 | 
			
		||||
0xdb,
 | 
			
		||||
0xda,
 | 
			
		||||
0xd8,
 | 
			
		||||
0xd6,
 | 
			
		||||
0xd5,
 | 
			
		||||
0xd3,
 | 
			
		||||
0xd1,
 | 
			
		||||
0xd0,
 | 
			
		||||
0xce,
 | 
			
		||||
0xcc,
 | 
			
		||||
0xca,
 | 
			
		||||
0xc9,
 | 
			
		||||
0xc7,
 | 
			
		||||
0xc5,
 | 
			
		||||
0xc3,
 | 
			
		||||
0xc1,
 | 
			
		||||
0xbf,
 | 
			
		||||
0xbd,
 | 
			
		||||
0xbb,
 | 
			
		||||
0xb9,
 | 
			
		||||
0xb7,
 | 
			
		||||
0xb5,
 | 
			
		||||
0xb3,
 | 
			
		||||
0xb1,
 | 
			
		||||
0xaf,
 | 
			
		||||
0xad,
 | 
			
		||||
0xab,
 | 
			
		||||
0xa9,
 | 
			
		||||
0xa7,
 | 
			
		||||
0xa5,
 | 
			
		||||
0xa3,
 | 
			
		||||
0xa0,
 | 
			
		||||
0x9e,
 | 
			
		||||
0x9c,
 | 
			
		||||
0x9a,
 | 
			
		||||
0x98,
 | 
			
		||||
0x96,
 | 
			
		||||
0x93,
 | 
			
		||||
0x91,
 | 
			
		||||
0x8f,
 | 
			
		||||
0x8d,
 | 
			
		||||
0x8b,
 | 
			
		||||
0x88,
 | 
			
		||||
0x86,
 | 
			
		||||
0x84,
 | 
			
		||||
0x82,
 | 
			
		||||
0x80,
 | 
			
		||||
0x7d,
 | 
			
		||||
0x7b,
 | 
			
		||||
0x79,
 | 
			
		||||
0x77,
 | 
			
		||||
0x74,
 | 
			
		||||
0x72,
 | 
			
		||||
0x70,
 | 
			
		||||
0x6e,
 | 
			
		||||
0x6c,
 | 
			
		||||
0x69,
 | 
			
		||||
0x67,
 | 
			
		||||
0x65,
 | 
			
		||||
0x63,
 | 
			
		||||
0x61,
 | 
			
		||||
0x5f,
 | 
			
		||||
0x5c,
 | 
			
		||||
0x5a,
 | 
			
		||||
0x58,
 | 
			
		||||
0x56,
 | 
			
		||||
0x54,
 | 
			
		||||
0x52,
 | 
			
		||||
0x50,
 | 
			
		||||
0x4e,
 | 
			
		||||
0x4c,
 | 
			
		||||
0x4a,
 | 
			
		||||
0x48,
 | 
			
		||||
0x46,
 | 
			
		||||
0x44,
 | 
			
		||||
0x42,
 | 
			
		||||
0x40,
 | 
			
		||||
0x3e,
 | 
			
		||||
0x3c,
 | 
			
		||||
0x3a,
 | 
			
		||||
0x38,
 | 
			
		||||
0x36,
 | 
			
		||||
0x35,
 | 
			
		||||
0x33,
 | 
			
		||||
0x31,
 | 
			
		||||
0x2f,
 | 
			
		||||
0x2e,
 | 
			
		||||
0x2c,
 | 
			
		||||
0x2a,
 | 
			
		||||
0x29,
 | 
			
		||||
0x27,
 | 
			
		||||
0x25,
 | 
			
		||||
0x24,
 | 
			
		||||
0x22,
 | 
			
		||||
0x21,
 | 
			
		||||
0x1f,
 | 
			
		||||
0x1e,
 | 
			
		||||
0x1c,
 | 
			
		||||
0x1b,
 | 
			
		||||
0x1a,
 | 
			
		||||
0x18,
 | 
			
		||||
0x17,
 | 
			
		||||
0x16,
 | 
			
		||||
0x15,
 | 
			
		||||
0x13,
 | 
			
		||||
0x12,
 | 
			
		||||
0x11,
 | 
			
		||||
0x10,
 | 
			
		||||
0xf,
 | 
			
		||||
0xe,
 | 
			
		||||
0xd,
 | 
			
		||||
0xc,
 | 
			
		||||
0xb,
 | 
			
		||||
0xa,
 | 
			
		||||
0x9,
 | 
			
		||||
0x8,
 | 
			
		||||
0x8,
 | 
			
		||||
0x7,
 | 
			
		||||
0x6,
 | 
			
		||||
0x6,
 | 
			
		||||
0x5,
 | 
			
		||||
0x4,
 | 
			
		||||
0x4,
 | 
			
		||||
0x3,
 | 
			
		||||
0x3,
 | 
			
		||||
0x2,
 | 
			
		||||
0x2,
 | 
			
		||||
0x2,
 | 
			
		||||
0x1,
 | 
			
		||||
0x1,
 | 
			
		||||
0x1,
 | 
			
		||||
0x0,
 | 
			
		||||
0x0,
 | 
			
		||||
0x0,
 | 
			
		||||
0x0,
 | 
			
		||||
0x0,
 | 
			
		||||
0x0,
 | 
			
		||||
0x0,
 | 
			
		||||
0x0,
 | 
			
		||||
0x0,
 | 
			
		||||
0x0,
 | 
			
		||||
0x0,
 | 
			
		||||
0x1,
 | 
			
		||||
0x1,
 | 
			
		||||
0x1,
 | 
			
		||||
0x2,
 | 
			
		||||
0x2,
 | 
			
		||||
0x2,
 | 
			
		||||
0x3,
 | 
			
		||||
0x3,
 | 
			
		||||
0x4,
 | 
			
		||||
0x4,
 | 
			
		||||
0x5,
 | 
			
		||||
0x6,
 | 
			
		||||
0x6,
 | 
			
		||||
0x7,
 | 
			
		||||
0x8,
 | 
			
		||||
0x8,
 | 
			
		||||
0x9,
 | 
			
		||||
0xa,
 | 
			
		||||
0xb,
 | 
			
		||||
0xc,
 | 
			
		||||
0xd,
 | 
			
		||||
0xe,
 | 
			
		||||
0xf,
 | 
			
		||||
0x10,
 | 
			
		||||
0x11,
 | 
			
		||||
0x12,
 | 
			
		||||
0x13,
 | 
			
		||||
0x15,
 | 
			
		||||
0x16,
 | 
			
		||||
0x17,
 | 
			
		||||
0x18,
 | 
			
		||||
0x1a,
 | 
			
		||||
0x1b,
 | 
			
		||||
0x1c,
 | 
			
		||||
0x1e,
 | 
			
		||||
0x1f,
 | 
			
		||||
0x21,
 | 
			
		||||
0x22,
 | 
			
		||||
0x24,
 | 
			
		||||
0x25,
 | 
			
		||||
0x27,
 | 
			
		||||
0x29,
 | 
			
		||||
0x2a,
 | 
			
		||||
0x2c,
 | 
			
		||||
0x2e,
 | 
			
		||||
0x2f,
 | 
			
		||||
0x31,
 | 
			
		||||
0x33,
 | 
			
		||||
0x35,
 | 
			
		||||
0x36,
 | 
			
		||||
0x38,
 | 
			
		||||
0x3a,
 | 
			
		||||
0x3c,
 | 
			
		||||
0x3e,
 | 
			
		||||
0x40,
 | 
			
		||||
0x42,
 | 
			
		||||
0x44,
 | 
			
		||||
0x46,
 | 
			
		||||
0x48,
 | 
			
		||||
0x4a,
 | 
			
		||||
0x4c,
 | 
			
		||||
0x4e,
 | 
			
		||||
0x50,
 | 
			
		||||
0x52,
 | 
			
		||||
0x54,
 | 
			
		||||
0x56,
 | 
			
		||||
0x58,
 | 
			
		||||
0x5a,
 | 
			
		||||
0x5c,
 | 
			
		||||
0x5f,
 | 
			
		||||
0x61,
 | 
			
		||||
0x63,
 | 
			
		||||
0x65,
 | 
			
		||||
0x67,
 | 
			
		||||
0x69,
 | 
			
		||||
0x6c,
 | 
			
		||||
0x6e,
 | 
			
		||||
0x70,
 | 
			
		||||
0x72,
 | 
			
		||||
0x74,
 | 
			
		||||
0x77,
 | 
			
		||||
0x79,
 | 
			
		||||
0x7b,
 | 
			
		||||
0x7d};
 | 
			
		||||
	while(1)
 | 
			
		||||
	{
 | 
			
		||||
		for(int i=0;i<360;i++)
 | 
			
		||||
		{
 | 
			
		||||
			OCR0A= testArray[i];
 | 
			
		||||
			TCCR0A = 0x83;//non-inverting pwm
 | 
			
		||||
			TCCR0B = 0x03;//prescaler = 64 for frequency to be approx 1kHz
 | 
			
		||||
			//output of pwm is at pin 13(OC0)
 | 
			
		||||
			_delay_ms(50);
 | 
			
		||||
		}
 | 
			
		||||
		//OCR0A= testArray[0];
 | 
			
		||||
		/*OCR0A = 0x80;
 | 
			
		||||
			TCCR0A = 0x83;//non-inverting pwm
 | 
			
		||||
			TCCR0B = 0x03;
 | 
			
		||||
			*/
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	
 | 
			
		||||
}
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -0,0 +1,70 @@
 | 
			
		|||
:100000000C9472000C948B000C948B000C948B005D
 | 
			
		||||
:100010000C948B000C948B000C948B000C948B0034
 | 
			
		||||
:100020000C948B000C948B000C948B000C948B0024
 | 
			
		||||
:100030000C948B000C948B000C948B000C948B0014
 | 
			
		||||
:100040000C948B000C948B000C948B000C948B0004
 | 
			
		||||
:100050000C948B000C948B000C948B000C948B00F4
 | 
			
		||||
:100060000C948B000C948B000C948B000C948B00E4
 | 
			
		||||
:100070000C948B000C948B000C948B000C948B00D4
 | 
			
		||||
:100080000C948B000C948B000C948B000C948B00C4
 | 
			
		||||
:100090000C948B000C948B000C948B000C948B00B4
 | 
			
		||||
:1000A0000C948B000C948B000C948B000C948B00A4
 | 
			
		||||
:1000B0000C948B000C948B000C948B000C948B0094
 | 
			
		||||
:1000C0000C948B000C948B000C948B000C948B0084
 | 
			
		||||
:1000D0000C948B000C948B000C948B000C948B0074
 | 
			
		||||
:1000E0000C948B0011241FBECFEFD1E2DEBFCDBF39
 | 
			
		||||
:1000F00000E00CBF14E0A0E0B2E0EEE7F1E000E0C9
 | 
			
		||||
:100100000BBF02C007900D92A03DB107D9F70E9426
 | 
			
		||||
:100110008D000C94BD000C940000CF93DF93CDB7FD
 | 
			
		||||
:10012000DEB7C05DD2400FB6F894DEBF0FBECDBFC4
 | 
			
		||||
:100130008FEF84B980ED92E0E0E0F2E0DE0111960D
 | 
			
		||||
:1001400001900D920197E1F7CE018F529D4F23E868
 | 
			
		||||
:1001500033E0FE0131964081329647BD24BD35BD66
 | 
			
		||||
:100160004FEF50E762E0415050406040E1F700C07F
 | 
			
		||||
:0E0170000000E817F90779F7ECCFF894FFCFFD
 | 
			
		||||
:10017E00800082008400860088008B008D008F0036
 | 
			
		||||
:10018E0091009300960098009A009C009E00A0009B
 | 
			
		||||
:10019E00A300A500A700A900AB00AD00AF00B10001
 | 
			
		||||
:1001AE00B300B500B700B900BB00BD00BF00C10071
 | 
			
		||||
:1001BE00C300C500C700C900CA00CC00CE00D000E5
 | 
			
		||||
:1001CE00D100D300D500D600D800DA00DB00DD0068
 | 
			
		||||
:1001DE00DE00E000E100E300E400E500E700E800F7
 | 
			
		||||
:1001EE00E900EA00EC00ED00EE00EF00F000F10097
 | 
			
		||||
:1001FE00F200F300F400F500F600F700F700F80047
 | 
			
		||||
:10020E00F900F900FA00FB00FB00FC00FC00FD0009
 | 
			
		||||
:10021E00FD00FD00FE00FE00FE00FF00FF00FF00DF
 | 
			
		||||
:10022E00FF00FF00FF00FF00FF00FF00FF00FF00C8
 | 
			
		||||
:10023E00FE00FE00FE00FD00FD00FD00FC00FC00C7
 | 
			
		||||
:10024E00FB00FB00FA00F900F900F800F700F700D8
 | 
			
		||||
:10025E00F600F500F400F300F200F100F000EF00FC
 | 
			
		||||
:10026E00EE00ED00EC00EA00E900E800E700E50032
 | 
			
		||||
:10027E00E400E300E100E000DE00DD00DB00DA0078
 | 
			
		||||
:10028E00D800D600D500D300D100D000CE00CC00CF
 | 
			
		||||
:10029E00CA00C900C700C500C300C100BF00BD0031
 | 
			
		||||
:1002AE00BB00B900B700B500B300B100AF00AD00A0
 | 
			
		||||
:1002BE00AB00A900A700A500A300A0009E009C0013
 | 
			
		||||
:1002CE009A0098009600930091008F008D008B008D
 | 
			
		||||
:1002DE00880086008400820080007D007B0079000B
 | 
			
		||||
:1002EE0077007400720070006E006C006900670089
 | 
			
		||||
:1002FE006500630061005F005C005A005800560004
 | 
			
		||||
:10030E005400520050004E004C004A004800460077
 | 
			
		||||
:10031E004400420040003E003C003A0038003600E7
 | 
			
		||||
:10032E003500330031002F002E002C002A0029004A
 | 
			
		||||
:10033E00270025002400220021001F001E001C00A3
 | 
			
		||||
:10034E001B001A00180017001600150013001200EB
 | 
			
		||||
:10035E00110010000F000E000D000C000B000A0023
 | 
			
		||||
:10036E00090008000800070006000600050004004A
 | 
			
		||||
:10037E00040003000300020002000200010001005D
 | 
			
		||||
:10038E00010000000000000000000000000000005E
 | 
			
		||||
:10039E00000000000000000001000100010002004A
 | 
			
		||||
:1003AE000200020003000300040004000500060022
 | 
			
		||||
:1003BE00060007000800080009000A000B000C00E8
 | 
			
		||||
:1003CE000D000E000F00100011001200130015009A
 | 
			
		||||
:1003DE001600170018001A001B001C001E001F003C
 | 
			
		||||
:1003EE002100220024002500270029002A002C00CD
 | 
			
		||||
:1003FE002E002F00310033003500360038003A0051
 | 
			
		||||
:10040E003C003E00400042004400460048004A00C6
 | 
			
		||||
:10041E004C004E00500052005400560058005A0036
 | 
			
		||||
:10042E005C005F00610063006500670069006C009E
 | 
			
		||||
:10043E006E00700072007400770079007B007D0002
 | 
			
		||||
:00000001FF
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -0,0 +1,106 @@
 | 
			
		|||
# simple AVR Makefile
 | 
			
		||||
#
 | 
			
		||||
# written by michael cousins (http://github.com/mcous)
 | 
			
		||||
# released to the public domain
 | 
			
		||||
 | 
			
		||||
# Makefile
 | 
			
		||||
#
 | 
			
		||||
# targets:
 | 
			
		||||
#   all:    compiles the source code
 | 
			
		||||
#   test:   tests the isp connection to the mcu
 | 
			
		||||
#   flash:  writes compiled hex file to the mcu's flash memory
 | 
			
		||||
#   fuse:   writes the fuse bytes to the MCU
 | 
			
		||||
#   disasm: disassembles the code for debugging
 | 
			
		||||
#   clean:  removes all .hex, .elf, and .o files in the source code and library directories
 | 
			
		||||
 | 
			
		||||
# parameters (change this stuff accordingly)
 | 
			
		||||
# project name
 | 
			
		||||
PRJ = main
 | 
			
		||||
# avr mcu
 | 
			
		||||
MCU = atmega2560
 | 
			
		||||
# mcu clock frequency
 | 
			
		||||
CLK = 16000000
 | 
			
		||||
# avr programmer (and port if necessary)
 | 
			
		||||
# e.g. PRG = usbtiny -or- PRG = arduino -P /dev/tty.usbmodem411
 | 
			
		||||
PRG = wiring -P /dev/ttyACM0
 | 
			
		||||
# fuse values for avr: low, high, and extended
 | 
			
		||||
# these values are from an Arduino Uno (ATMega328P)
 | 
			
		||||
# see http://www.engbedded.com/fusecalc/ for other MCUs and options
 | 
			
		||||
LFU = 0xFF
 | 
			
		||||
HFU = 0xD0
 | 
			
		||||
EFU = 0xFD
 | 
			
		||||
# program source files (not including external libraries)
 | 
			
		||||
SRC = $(PRJ).c
 | 
			
		||||
# where to look for external libraries (consisting of .c/.cpp files and .h files)
 | 
			
		||||
# e.g. EXT = ../../EyeToSee ../../YouSART
 | 
			
		||||
EXT =
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#################################################################################################
 | 
			
		||||
# \/ stuff nobody needs to worry about until such time that worrying about it is appropriate \/ #
 | 
			
		||||
#################################################################################################
 | 
			
		||||
 | 
			
		||||
# include path
 | 
			
		||||
INCLUDE := $(foreach dir, $(EXT), -I$(dir))
 | 
			
		||||
# c flags
 | 
			
		||||
CFLAGS    = -Wall -Os -DF_CPU=$(CLK) -mmcu=$(MCU) $(INCLUDE)
 | 
			
		||||
# any aditional flags for c++
 | 
			
		||||
CPPFLAGS =
 | 
			
		||||
 | 
			
		||||
# executables
 | 
			
		||||
AVRDUDE = avrdude  -C /usr/share/arduino/hardware/tools/avrdude.conf -c $(PRG) -p $(MCU)  -b 115200 -D
 | 
			
		||||
OBJCOPY = avr-objcopy
 | 
			
		||||
OBJDUMP = avr-objdump
 | 
			
		||||
SIZE    = avr-size --format=avr --mcu=$(MCU)
 | 
			
		||||
CC      = avr-gcc
 | 
			
		||||
 | 
			
		||||
# generate list of objects
 | 
			
		||||
CFILES    = $(filter %.c, $(SRC))
 | 
			
		||||
EXTC     := $(foreach dir, $(EXT), $(wildcard $(dir)/*.c))
 | 
			
		||||
CPPFILES  = $(filter %.cpp, $(SRC))
 | 
			
		||||
EXTCPP   := $(foreach dir, $(EXT), $(wildcard $(dir)/*.cpp))
 | 
			
		||||
OBJ       = $(CFILES:.c=.o) $(EXTC:.c=.o) $(CPPFILES:.cpp=.o) $(EXTCPP:.cpp=.o)
 | 
			
		||||
 | 
			
		||||
# user targets
 | 
			
		||||
# compile all files
 | 
			
		||||
all: $(PRJ).hex
 | 
			
		||||
 | 
			
		||||
# test programmer connectivity
 | 
			
		||||
test:
 | 
			
		||||
	$(AVRDUDE) -v
 | 
			
		||||
 | 
			
		||||
# flash program to mcu
 | 
			
		||||
flash: all
 | 
			
		||||
	$(AVRDUDE) -U flash:w:$(PRJ).hex:i
 | 
			
		||||
 | 
			
		||||
# write fuses to mcu
 | 
			
		||||
fuse:
 | 
			
		||||
	$(AVRDUDE) -U lfuse:w:$(LFU):m -U hfuse:w:$(HFU):m -U efuse:w:$(EFU):m
 | 
			
		||||
 | 
			
		||||
# generate disassembly files for debugging
 | 
			
		||||
disasm: $(PRJ).elf
 | 
			
		||||
	$(OBJDUMP) -d $(PRJ).elf
 | 
			
		||||
 | 
			
		||||
# remove compiled files
 | 
			
		||||
clean:
 | 
			
		||||
	rm -f *.hex *.elf *.o
 | 
			
		||||
	$(foreach dir, $(EXT), rm -f $(dir)/*.o;)
 | 
			
		||||
 | 
			
		||||
# other targets
 | 
			
		||||
# objects from c files
 | 
			
		||||
.c.o:
 | 
			
		||||
	$(CC) $(CFLAGS) -c $< -o $@
 | 
			
		||||
 | 
			
		||||
# objects from c++ files
 | 
			
		||||
.cpp.o:
 | 
			
		||||
	$(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
 | 
			
		||||
 | 
			
		||||
# elf file
 | 
			
		||||
$(PRJ).elf: $(OBJ)
 | 
			
		||||
	$(CC) $(CFLAGS) -o $(PRJ).elf $(OBJ)
 | 
			
		||||
 | 
			
		||||
# hex file
 | 
			
		||||
$(PRJ).hex: $(PRJ).elf
 | 
			
		||||
	rm -f $(PRJ).hex
 | 
			
		||||
	$(OBJCOPY) -j .text -j .data -O ihex $(PRJ).elf $(PRJ).hex
 | 
			
		||||
	$(SIZE) $(PRJ).elf
 | 
			
		||||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
//sinusoidal PWM
 | 
			
		||||
//triangular PWM
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -23,4 +23,6 @@ int main(void)
 | 
			
		|||
	}
 | 
			
		||||
	
 | 
			
		||||
	
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//Problem with this code: The duty cycle here varies in triangular manner and isnt sinusoidal 
 | 
			
		||||
| 
						 | 
				
			
			@ -14,7 +14,7 @@ Bit [1:0]= WGM[1:0]- Waveform Generation Mode=11- for non-inverting fast PWM.
 | 
			
		|||
TCCR0B: Timer/Counter 0 Control Register B = 0x03
 | 
			
		||||
Bit [2:0] – CS0[2:0]-Clock Select = 011- for prescaler=64 in order to obtain frequency of 1kHz
 | 
			
		||||
 | 
			
		||||
The PWM runs in a loop with duty-cycle varying(i.e. changing value of OCR0A) such that the mean value follows a sinusoidal pattern. This function maybe helpful in AC generators.
 | 
			
		||||
The PWM runs in a loop with duty-cycle varying(i.e. changing value of OCR0A) such that the mean value follows a linear pattern. This function maybe helpful in AC generators.
 | 
			
		||||
 | 
			
		||||
inbuilt delay function used to induce a delay of 0.5 seconds before the duty cycle of the PWM changes
 | 
			
		||||
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							
		Loading…
	
		Reference in New Issue