/*****************************************************
Chip type           : ATmega128
Program type        : Application
Clock frequency     : 8,000000 MHz
*****************************************************/

#include <mega128.h>
#include <delay.h> 
#include <stdint.h>

#define OCR1C_WRITE(x) OCR1CH=x>>8; OCR1CL=x&0xFF;

void main(void)
{
uint16_t i;

// Input/Output Ports initialization
PORTB=0x00;
DDRB=0x80;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 8000,000 kHz
// Mode: Fast PWM top=03FFh
// OC1A output: Discon.
// OC1B output: Discon.
// OC1C output: Non-Inv.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
// Compare C Match Interrupt: Off
TCCR1A=0x0B;
TCCR1B=0x09;

while (1)
      {
      // UP
      for( i=0; i<0x3FF; i++ )
      { 
      	OCR1CH = i >> 8;
      	OCR1CL = i & 0xFF;
      	
      	delay_ms(1);
      };
      
      // DOWN
      for( i=0x3FF-1; i>0; i-- )
      { 
      	OCR1C_WRITE( i );
      	
      	delay_ms(1);
      };

      };
}
