/*
 * File:   generator.c
 * Author: Skleptik
 *
 * Created on 25 Февраль 2014 г., 19:43
 */

#include <stdio.h>
#include <stdlib.h>

#include "pic12f675.h"
#pragma config FOSC = INTRCIO   // Oscillator Selection bits (INTOSC oscillator: I/O function on GP4/OSC2/CLKOUT pin, I/O function on GP5/OSC1/CLKIN)
#pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = ON       // Power-Up Timer Enable bit (PWRT enabled)
#pragma config MCLRE = OFF      // GP3/MCLR pin function select (GP3/MCLR pin function is digital I/O, MCLR internally tied to VDD)
#pragma config BOREN = OFF      // Brown-out Detect Enable bit (BOD disabled)
#pragma config CP = OFF         // Code Protection bit (Program Memory code protection is disabled)
#pragma config CPD = OFF        //

#define out1 GPIO0
#define out2 GPIO1
#define kn1 GPIO2
#define kn2 GPIO3
#define led1 GPIO4
#define led2 GPIO5

void init(void)		/*Подпрограмма инициализации микроконтроллера*/
{
	CMCON=0x07;		//Выключаем модуль компаратора
	OPTION_REG=0b01111111;	//Устанавливаем предделитель TMR0 1:1
        TRISIO=0b00001100;	//Задаем направление работы порта A
	GPIO=0;	//Устанавливаем необходимыелогические уровни
	WPU=0b00000100;
	IOCB=0b00001100;
}

void delay (unsigned int time)
{
    while (time-->0);
}

void main (void)
{
    char temp;
    unsigned int i;
    i=1;
    temp=0;
    init();
    while (1)
    {
        while (kn1==0)	// При добавлении этих строк , программа перестает работать в протеусе.
        {		// а в симуляторе MPLAB работает.
            delay(10);	//
            temp=i++;	//
        }		//
        if (kn1==1);	//
        {		//
        delay(temp);
        out1=1;
        delay(temp);
        out1=0;
        }
    }
}