07-12-2014, 06:33 AM
(Сообщение последний раз редактировалось: 07-12-2014, 06:33 AM БендеровецЪ.)
Вобще для удобства пора это безобразие с #define выносить в отдельный файл. Пока не сильно много "всего" хватит одного .h файла.
Создаем файл, например helper.h в дериктории с основным .c фалом, добавляем его в проэкт.
Переносим в .h файл все наши дефайны, плюс еще пара инструкций, что-бы придержат компилятор от черызмерных усилий:
#ifndef HELPER_H
#define HELPER_H
#include <avr\io.h>
#define COUNTER_RESET_VALUE 0x02
#define REL PA0
#define DC PA1
#define LED0 PA5
#define LED1 PA4
#define FAULT PA7
#define ADC_IN3 PA3
#define ADC_IN2 PA2
#define RESET PB3
#define TCCR0A_RESET_VALUE ( (0 << COM0A1) + (0 << COM0A0) + (0 << COM0B1) + (0 << COM0B0) + (0 << WGM01) + (0 << WGM00)) //Timer mode
#define TCCR0B_RESET_VALUE ( (0 << WGM02) + (0 << CS02) + (0 << CS01) + (1 << CS00)) //Normal mode, prescaler 1
#define TIMSK0_RESET_VALUE ( (0 << OCIE0B) + (0 << OCIE0A) + (0 << TOIE0))
#define TIMER0_OF() TIFR0 & 0x01
#define TIMER0_OF_RESET() TIFR0 = 0x01
#define TIMER0_MATCH() TIFR0 & 0x02
#define TIMER0_MATCH_RESET() TIFR0 = 0x02
#define ENABLE_TIMER0_INT() TIMSK0 |= (1 << TOIE0)
#define DISABLE_TIMER0_INT() TIMSK0 &= ~(1 << TOIE0)
#define DDRA_RESET_VALUE ( (1 << REL) + (1 << LED0) + (1 << LED1) + (0 << ADC_IN3) + (0 << ADC_IN2) + (0 << FAULT) + (0 << DC))
#endif
А в основном фале замещаем все скопирование строкой
#include "helper.h"
Готово
Создаем файл, например helper.h в дериктории с основным .c фалом, добавляем его в проэкт.
Переносим в .h файл все наши дефайны, плюс еще пара инструкций, что-бы придержат компилятор от черызмерных усилий:
#ifndef HELPER_H
#define HELPER_H
#include <avr\io.h>
#define COUNTER_RESET_VALUE 0x02
#define REL PA0
#define DC PA1
#define LED0 PA5
#define LED1 PA4
#define FAULT PA7
#define ADC_IN3 PA3
#define ADC_IN2 PA2
#define RESET PB3
#define TCCR0A_RESET_VALUE ( (0 << COM0A1) + (0 << COM0A0) + (0 << COM0B1) + (0 << COM0B0) + (0 << WGM01) + (0 << WGM00)) //Timer mode
#define TCCR0B_RESET_VALUE ( (0 << WGM02) + (0 << CS02) + (0 << CS01) + (1 << CS00)) //Normal mode, prescaler 1
#define TIMSK0_RESET_VALUE ( (0 << OCIE0B) + (0 << OCIE0A) + (0 << TOIE0))
#define TIMER0_OF() TIFR0 & 0x01
#define TIMER0_OF_RESET() TIFR0 = 0x01
#define TIMER0_MATCH() TIFR0 & 0x02
#define TIMER0_MATCH_RESET() TIFR0 = 0x02
#define ENABLE_TIMER0_INT() TIMSK0 |= (1 << TOIE0)
#define DISABLE_TIMER0_INT() TIMSK0 &= ~(1 << TOIE0)
#define DDRA_RESET_VALUE ( (1 << REL) + (1 << LED0) + (1 << LED1) + (0 << ADC_IN3) + (0 << ADC_IN2) + (0 << FAULT) + (0 << DC))
#endif
А в основном фале замещаем все скопирование строкой
#include "helper.h"
Готово
"Найкраще сало то ковбаса." (с)