PDA

Просмотр полной версии : Скомпилировать программу



UT2CW
04.11.2014, 12:09
Помогите скомпилировать программу. Компилятор выбивает ошибку "Error 1 tiny13.h: No such file or directory"




#include <tiny13.h>
#include <delay.h>


// Port out:
#define POUT 0
// Port audio (do not change!)
#define PAUDIO 1
// Port LED:
#define PLED 2


#define REPEAT 4


// Morze length
#define L_DOT 80
#define L_LINE 3*L_DOT
#define S_PAUSE L_DOT
#define C_PAUSE 3*L_DOT


// Audio freq:
#define TONE 128
#define TONE_ON TCCR0A=0x12
#define TONE_OFF TCCR0A=0x02


const unsigned char phrase[] = "CQ CQ CQ DE MO X################### #################### #################### #################### #################### #########";


#define REPEAT_DL 60000


// Declare your global variables here
// 0 - "."
// 1 - "-"
// 2 - pause
// 3 - long pause
// 5 - null
#define SYM_LEN 5
#define mA 0,1,5,5,5
#define mB 1,0,0,0,5
#define mC 1,0,1,0,5
#define mD 1,0,0,5,5
#define mE 0,5,5,5,5
#define mF 0,0,1,0,5
#define mG 1,1,0,5,5
#define mH 0,0,0,0,5
#define mI 0,0,5,5,5
#define mJ 0,1,1,1,5
#define mK 1,0,1,5,5
#define mL 0,1,0,0,5
#define mM 1,1,5,5,5
#define mN 1,0,5,5,5
#define mO 1,1,1,5,5
#define mP 0,1,1,0,5
#define mQ 1,1,0,1,5
#define mR 0,1,0,5,5
#define mS 0,0,0,5,5
#define mT 1,5,5,5,5
#define mU 0,0,1,5,5
#define mV 0,0,0,1,5
#define mW 0,1,1,5,5
#define mX 1,0,0,1,5
#define mY 1,0,1,1,5
#define mZ 1,1,0,0,5
#define m0 1,1,1,1,1
#define m1 0,1,1,1,1
#define m2 0,0,1,1,1
#define m3 0,0,0,1,1
#define m4 0,0,0,0,1
#define m5 0,0,0,0,0
#define m6 1,0,0,0,0
#define m7 1,1,0,0,0
#define m8 1,1,1,0,0
#define m9 1,1,1,1,0
#define m_ 2,2,2,5,5
#define mSl 1,0,0,1,0


const unsigned char symbols[] = {
mSl, m0, m1, m2, m3, m4, m5, m6, m7, m8, m9, // '/',0,1-9
m_, m_, m_, m_, m_, m_, m_, // :;<=>?@
mA, mB, mC, mD, mE, mF, mG, mH, mI, mJ, mK, mL, mM, mN, mO, mP, mQ, mR, mS, mT, mU, mV, mW, mX, mY, mZ
};

void morze_out(flash unsigned char *pData)
{
unsigned char p, p1;
for(p=0; p<128; p++)
{
unsigned char symb = pData[p];
if (symb == '#') break;
if (symb == '*') // задержка 1 секунда
{
PORTB.POUT = 1;
TONE_ON;
delay_ms(1000);
PORTB.POUT = 0;
TONE_OFF;
delay_ms(S_PAUSE);
continue;
}

if (symb == ' ') symb = '='; // код пробела тоже в этом символе
if (symb >= '/' && symb <= 'Z')
{
unsigned int symb_code = symb - '/';
unsigned int symb_index = SYM_LEN*symb_code;
if (symb_index >= sizeof(symbols)) continue;

for(p1=0; p1<SYM_LEN; p1++)
{
if (symbols[symb_index + p1] == 0) // "."
{
PORTB.POUT = 1;
TONE_ON;
delay_ms(L_DOT);
PORTB.POUT = 0;
TONE_OFF;
delay_ms(S_PAUSE);
} else
if (symbols[symb_index + p1] == 1) // "-"
{
PORTB.POUT = 1;
TONE_ON;
delay_ms(L_LINE);
PORTB.POUT = 0;
TONE_OFF;
delay_ms(S_PAUSE);
} else
if (symbols[symb_index + p1] == 2) // "pause"
{
delay_ms(S_PAUSE);
}
}

delay_ms(C_PAUSE);
}
}
}


void main(void)
{
// Input/Output Ports initialization
// Port B initialization
// Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTB=0x00;
DDRB=0x3F;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 150.000 kHz
// Mode: CTC top=OCR0A
// OC0A output: Disconnected
// OC0B output: Toggle on compare match
// Audio freq:
TCCR0A=0x12;//0x03;
TCCR0B=0x03;
TCNT0=0x00;
OCR0A=TONE;
OCR0B=0x00;

// External Interrupt(s) initialization
// INT0: Off
// Interrupt on any change on pins PCINT0-5: Off
GIMSK=0x00;
MCUCR=0x00;

// Timer/Counter 0 Interrupt(s) initialization
TIMSK0=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
ACSR=0x80;
ADCSRB=0x00;

TONE_OFF;

while (1)
{
unsigned char p;
for(p=0; p<REPEAT; p++)
{
morze_out(phrase);

PORTB.PLED = 1;
delay_ms(1500);
PORTB.PLED = 0;
}

delay_ms(REPEAT_DL);

};
}

serge_m
04.11.2014, 12:17
Если я не ошибаюсь - tiny13.h должен лежать в одной директории с файлом содержащим ваш код.

Livas60
04.11.2014, 12:53
А чем компилируете?

UT2CW
04.11.2014, 14:43
Спасибо за ответ, я только учусь, не могу понять почему выбивает ошибку. Программа AVR STUDIO 6 ...
Может кто сможет откомпилировать и выложить хекс файл ?

serge_m
04.11.2014, 14:46
Это понятно что учитесь. Но проверить наличие файла с известным именем не сложно. Для этого не надо разбираться в программировании вообще.
Есть файл или нету?

Livas60
04.11.2014, 15:03
Может кто сможет откомпилировать и выложить хекс файл ?
Для корректной компиляции нужно знать хотя бы тактовую частоту Attiny13 в устройстве.
Схему можете показать?
Для частоты 8 MHz hex-файл во вложении.

UT2CW
04.11.2014, 15:11
Спасибо всем за ответ!!! Я не очень понимаю в программировании... Я делаю передатчик для охоты на лис ... В качестве манипулятора хочу применить вот такую схему http://rfanat.ru/s22/gen_morze_atiny13.ht ml... Там частота 9.6 МГц по моему... Помогите пожалуйста...

Livas60
04.11.2014, 15:16
Пробуйте.

UT2CW
04.11.2014, 15:18
Огромное спасибо !!! Я сейчас на паре сижу, прийду домой сразу попробую.. А Вы каким компилятором пользуетесь ? Подскажите пожалуйста. Я только начал осваивать МК ...

Livas60
04.11.2014, 15:31
Исходный проект написан на CodeVisionAVR. Я компилировал версией 2.04.4a Advanced.
Во вложении hex с Вашими изменениями программы.

UT2CW
04.11.2014, 15:39
Спасибо огромное!!! В коде программы я поменял длительность работы, позывной (лиса МО Х) , и паузу 4 мин... Не знаю правда правильно ли я сделал... Как только доберусь к дому попробую перепрошить ! Спасибо еще раз!

UT2CW
04.11.2014, 19:05
Livas60,
Добрый вечер
Прошил я микросхему!!! Спасибо Вам . Только почему то пауза между блоками не 4 а 1 мин ... Посмотрите пожалуйста прошивку, может я где то ошибку сделал когда менял данные...

Livas60
04.11.2014, 20:33
Исправил.

UT2CW
04.11.2014, 21:05
Спасибо большое Вам, все работает!Правда немного не так как я предполагал. Нужно как то уложить цикл сообщения в 1 мин, надо увеличить скорость CW посылок.... А так все очень здорово, извините если помучал Вас... Подскажите еще где лучше скачать СVR ... Хочу теперь сам попробовать , очень понравилось )
С ув. Александр UR3VHR 73 !

Livas60
04.11.2014, 21:17
В личке.