387 lines
2.6 KiB
C
387 lines
2.6 KiB
C
#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;
|
|
*/
|
|
}
|
|
|
|
|
|
} |