Страница 174 из 421

Re: CodeVision AVR в вопросах и ответах

Добавлено: Пт янв 20, 2012 22:05:37
Назим
Я только начинаю учиться. Хотел создать простой hex файл, а потом изменить его скачанным файлом и загрузить в МК.

написал вот так:
#include <ATtiny2313a.h>
void main(void)
{
DDRD = 0b11111;
PORTD =0b00001;
}
Код Вижн 2,05 выдаёт ошибку:

Error: C:\ .....Мои документы\Tiny\Termometr.c(2): can't open #include file: ATtiny2313a.h
Error: C:\......Мои документы\Tiny\Termometr.c(6): undefined symbol 'PORTD'
Как исправить?

Re: CodeVision AVR в вопросах и ответах

Добавлено: Пт янв 20, 2012 22:11:41
Apparatchik
Назим писал(а):Я только начинаю учиться. Хотел создать простой hex файл, а потом изменить его скачанным файлом и загрузить в МК.

написал вот так:
#include <ATtiny2313a.h>
void main(void)
{
DDRD = 0b11111;
PORTD =0b00001;
}
Код Вижн 2,05 выдаёт ошибку:

Error: C:\ .....Мои документы\Tiny\Termometr.c(2): can't open #include file: ATtiny2313a.h
Error: C:\......Мои документы\Tiny\Termometr.c(6): undefined symbol 'PORTD'
Как исправить?
Вместо ATtiny2313a.h нада tiny2313.h

А зачем такие сложности? нельзя ли просто залить скачаный файл?

Re: CodeVision AVR в вопросах и ответах

Добавлено: Пт янв 20, 2012 22:12:54
vitalik_1984
Назим писал(а): написал вот так:
#include <ATtiny2313a.h>


Код Вижн 2,05 выдаёт ошибку:

Error: C:\ .....Мои документы\Tiny\Termometr.c(2): can't open #include file: ATtiny2313a.h
Error: C:\......Мои документы\Tiny\Termometr.c(6): undefined symbol 'PORTD'
Как исправить?
это из какого компилятора пример? во всех разные пути заголовочных файлов и названия.
вторая ошибка вытекает из первой.

надо #include <tiny2313a.h>

Re: CodeVision AVR в вопросах и ответах

Добавлено: Пт янв 20, 2012 22:16:45
Назим
vitalik_1984 писал(а):надо #include <tiny2313a.h>
написал так - ошибка пропала.
Спасибо.

Re: CodeVision AVR в вопросах и ответах

Добавлено: Пт янв 20, 2012 22:33:39
Назим
Apparatchik писал(а): нельзя ли просто залить скачаный файл?
А как это сделать?

изменил свой hex файл на скачанный

Re: CodeVision AVR в вопросах и ответах

Добавлено: Пт янв 20, 2012 23:05:25
vitalik_1984
Назим писал(а):
Apparatchik писал(а): нельзя ли просто залить скачаный файл?
А как это сделать?
Как исправить?
вы вообще понимаете разницу в форматах .h и .hex?
hex это тот файл,который нужно выбирать при программировании
вы же привели текст из того файла h что включали в проект строкой #include <>
вообще чтобы подключить исходник к проекту нужно выбрать Project->Configure там выбрать input files там кнопка add добавляем файлы с расширением .c
пример в разделе справки CodeVision AVR :Adding or Removing a File from the Project
добавьте ваш файл термометр и компилируйте.Hex можно заливать.лежит он в той же папке где проект в подпапке exe
Вообще откуда пример брали?
и что хотите сделать: применить конструкцию или поменять?
файл .hex можно залить без изменений прям в контроллер.И вообще вам бы почитать для начинающих литературу, а то форума не хватит объяснять.

Ps Назим,отредактируйте свое предыдущее сообщение и удалите текст между [/code]

Re: CodeVision AVR в вопросах и ответах

Добавлено: Сб янв 21, 2012 00:09:27
Назим
Пример взял отсюда: http://radiokot.ru/circuit/digital/home/26/

Разницу между h и Нех пока не понимаю.
Хотел сделать цифровой термометр.
Я создал проект, а потом из папки ехе взял Нех файл, открыл его в блокноте, стёр и вставил туда скачанный Нех файл.

Как залить в МК смотрел у Кубрикова (сайт Фанат Науки)

Re: CodeVision AVR в вопросах и ответах

Добавлено: Сб янв 21, 2012 00:15:06
Apparatchik
Назим писал(а):Пример взял отсюда: http://radiokot.ru/circuit/digital/home/26/

Разницу между h и Нех пока не понимаю.
Хотел сделать цифровой термометр.
Я создал проект, а потом из папки ехе взял Нех файл, открыл его в блокноте, стёр и вставил туда скачанный Нех файл.

Как залить в МК смотрел у Кубрикова (сайт Фанат Науки)
Создавать ниче ненужно, там выложена уже готовая пршивка, её нужно только зашить в мк!

Re: CodeVision AVR в вопросах и ответах

Добавлено: Сб янв 21, 2012 22:50:53
Volgol_555
Подскажите пожалуйста, как реализовать задержку для какого-то конкретного действия. К примеру, мне нужно, чтобы МК смотрел порт через каждые 30 мс. Команда delay_ms(30) не подходит в силу того, что она делает задержку всей программы, а не конкретного действия.
Какие есть идеи?

Re: CodeVision AVR в вопросах и ответах

Добавлено: Сб янв 21, 2012 22:53:10
*Trigger*
Прерывание по таймеру...

Re: CodeVision AVR в вопросах и ответах

Добавлено: Сб янв 21, 2012 22:55:32
Volgol_555
Вариант хороший. Но иногда бывают случаи, когда все таймеры задействованы...Как быть тогда? Может есть какие-то программные, а не аппаратные решения?

Re: CodeVision AVR в вопросах и ответах

Добавлено: Сб янв 21, 2012 23:02:03
*Trigger*
А если сделать прерывание по изменению на ноге МК и подцепить на эту ногу генератор на нужную частоту? Это если аппаратно.
Программно можно попробовать в одном прерывании (например, динамическая индикация) выполнять опрос кнопок и, собственно, индикацию.

Re: CodeVision AVR в вопросах и ответах

Добавлено: Сб янв 21, 2012 23:03:11
Apparatchik
Volgol_555 писал(а):Вариант хороший. Но иногда бывают случаи, когда все таймеры задействованы...Как быть тогда? Может есть какие-то программные, а не аппаратные решения?
Можно использовать уже задействованый таймер, например который отвечает за индикацию, отщитать нужное значение не составляет труда.

Re: CodeVision AVR в вопросах и ответах

Добавлено: Сб янв 21, 2012 23:03:57
*Trigger*
Я это уже предложил.

Re: CodeVision AVR в вопросах и ответах

Добавлено: Сб янв 21, 2012 23:07:18
Apparatchik
*Trigger* писал(а):Я это уже предложил.
Увидел уже когда отправил :)

Re: CodeVision AVR в вопросах и ответах

Добавлено: Сб янв 21, 2012 23:36:34
Volgol_555
Спасибо за размышления) Я тоже так думал) Просто возникла мысль: вдруг я не знаю функции задержки типа delay но для какой-то конкретной части программы).
Тогда ещё вопрос: как сделать параллельное выполнение команд, а не последовательное. К примеру, мне нужно выводить на дисплей часики - в частности секунды, но помимо этого выполнять ещё и действия, которые делают временную задержку больше 1 секунды (опрос 2 датчиков DS1820 порой обходится больше 1 сек). В итоге получается некоторое подвисание.
Здесь сделать все через прерывание не получается в силу того, что инициализация прерываний производится гораздо раньше, чем инициализация самого дисплея!

Re: CodeVision AVR в вопросах и ответах

Добавлено: Сб янв 21, 2012 23:43:27
Apparatchik
Volgol_555 писал(а):Спасибо за размышления) Я тоже так думал) Просто возникла мысль: вдруг я не знаю функции задержки типа delay но для какой-то конкретной части программы).
Тогда ещё вопрос: как сделать параллельное выполнение команд, а не последовательное. К примеру, мне нужно выводить на дисплей часики - в частности секунды, но помимо этого выполнять ещё и действия, которые делают временную задержку больше 1 секунды (опрос 2 датчиков DS1820 порой обходится больше 1 сек). В итоге получается некоторое подвисание.
Здесь сделать все через прерывание не получается в силу того, что инициализация прерываний производится гораздо раньше, чем инициализация самого дисплея!
В прерываниях засиживатся нельзя! там нужно только выставлять "флаги", а уже в основном цикле проверять флаги и соответственно что-то делать.

CodeVision AVR в вопросах и ответах

Добавлено: Вс янв 22, 2012 12:46:11
miharus
У меня такое дело. Я пытаюсь заставить тиньку перейти в спящий режим. В Code Vision использую вот что:

#include<sleep.h>
...
...
sleep_enable();
powerdown();
...
после этого я ожидаю что микроконтроллер перейдет в спящий режим, однако он продолжает работать. Что я делаю не правильно?

Re: CodeVision AVR в вопросах и ответах

Добавлено: Вс янв 22, 2012 12:52:54
pyzhman
Как вы определяете, что он работает не так, как надо? (Если он спит, то это видимо тоже работа.)

Re: CodeVision AVR в вопросах и ответах

Добавлено: Вс янв 22, 2012 15:27:17
miharus
На порту висят светодиоды. Я так понял что при powerdown они должны выключиться.