//#include "suryaa.h"
#include <avr/interrupt.h>
void pin_configure(void)
{
volatile char *dirf,*dirb;
dirf=(volatile char*)0x30;
dirb=(volatile char*)0x24;
*dirf=0xFF;
*dirb=0xFF;
}
void set_external_int_0(void)
{
volatile char*eicr0a,*eimsk0;
eicr0a=0x69;
eimsk0=0X3D;
*eicr0a=0x03;
*eimsk0=0x01;
}
void output_pwm(int x)
{
volatile char *ocr0a;
ocr0a=(volatile char *)0x47;
*ocr0a=x;
}
void delay_1(int x)
{
volatile long i;
while(x)
{
for(i=0;i<1000;i++);
x--;
}
}
void set_timer(void) //8 bit timer.
{
volatile char*tccr0a,*tccr0b; //setings of timer coontrol registers
tccr0a=(volatile char*)0x44;
tccr0b=(volatile char*)0x45;
*tccr0a=0x83; //set fastpwm non inverted mode;
*tccr0b=0x03; //setting prescalar clock 64;
}
ISR(INT0_vect)
{
volatile char*eifr;
eifr=(volatile char*)0x3C;
volatile long k;
for(k=0;k<200000;k++);
*eifr=0x01;
volatile static long i=0;
volatile char*outf=0x31;
if(i!=8)
{
*outf=(1<<i);
i++;
}
else
{
*outf=(1<<i);
i=0;
}
// sei();
}
void setup()
{
pin_configure();
set_external_int_0();
set_timer();
sei();
}
void loop()
{
volatile int i,j;
for(i=0;i<255;i++)
{
output_pwm(i);
delay_1(1);
}
for(j=255;j>=0;j--)
{
output_pwm(j);
delay_1(1);
}
}
mega:SCL
mega:SDA
mega:AREF
mega:GND.1
mega:13
mega:12
mega:11
mega:10
mega:9
mega:8
mega:7
mega:6
mega:5
mega:4
mega:3
mega:2
mega:1
mega:0
mega:14
mega:15
mega:16
mega:17
mega:18
mega:19
mega:20
mega:21
mega:5V.1
mega:5V.2
mega:22
mega:23
mega:24
mega:25
mega:26
mega:27
mega:28
mega:29
mega:30
mega:31
mega:32
mega:33
mega:34
mega:35
mega:36
mega:37
mega:38
mega:39
mega:40
mega:41
mega:42
mega:43
mega:44
mega:45
mega:46
mega:47
mega:48
mega:49
mega:50
mega:51
mega:52
mega:53
mega:GND.4
mega:GND.5
mega:IOREF
mega:RESET
mega:3.3V
mega:5V
mega:GND.2
mega:GND.3
mega:VIN
mega:A0
mega:A1
mega:A2
mega:A3
mega:A4
mega:A5
mega:A6
mega:A7
mega:A8
mega:A9
mega:A10
mega:A11
mega:A12
mega:A13
mega:A14
mega:A15
led1:A
led1:C
led2:A
led2:C
led3:A
led3:C
led4:A
led4:C
led5:A
led5:C
led6:A
led6:C
led7:A
led7:C
led8:A
led8:C
r1:1
r1:2
r2:1
r2:2
r3:1
r3:2
r4:1
r4:2
r5:1
r5:2
r6:1
r6:2
r7:1
r7:2
r8:1
r8:2
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
r9:1
r9:2
led9:A
led9:C
r10:1
r10:2