Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 18.01.2009, 20:05  
sserg_ey
Частый гость
 
Регистрация: 22.07.2007
Адрес: Харьков
Сообщений: 47
Сказал спасибо: 3
Сказали Спасибо 1 раз в 1 сообщении
sserg_ey на пути к лучшему
По умолчанию

Я не уверен, но возвращаемый main тип данных, должен быть void.
Реклама:
sserg_ey вне форума  
Непрочитано 18.01.2009, 21:46  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию

По стандарту int main(void)
Топикстартеру - возьмите free IDE от Атмел - AvrStudio. При ее установке WinAvr уже должен быть установлен, тогда студия сама установит плагин взаимодействия с компилятором. Создайте в ней проект ( GCC ), добавьте в проект требуемый C файл, установите в свойствах проекта тип контроллера, уровень оптимизации (Os) и тактовую частоту, нажмите F7 и получите результат.
Правда с этим исходником он будет неработоспособен
kison вне форума  
Непрочитано 18.01.2009, 22:22  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию

Сообщение от avr123-nm-ru
Делайте как там:
http://avr123.nm.ru/04.htm
"WinAVR начинающим - первые шаги"
И будет работать !
Уверены? В Ваших весьма ПРОСТЫХ примерах встречаются ГРУБЫЕ ошибки. Которые могут разочаровать заинтересовавшегося человека и отбить у него желание заниматься программированием для встроенных систем.
Я посмотрел самый первый и самый простой пример для GCC - "Эта программа мигает светодиодом который подключен
к ножке PB0 порта PORTB ATmega8...". Помигать светодиодом, что может быть проще? Но посмотрим повнимательней вот на эту строчку:
Код:
_delay_us(500); // Пауза 500 МикроСек.
На первый взгляд криминала не видно, используется библиотечная функция, но достаточно заглянуть в подключенный хедер, чтобы обнаружить следующее:
Цитата:
The maximal possible delay is 768 us / F_CPU in MHz.
Как видно из текста желаемая тактовая частота составляет 8МГц. 768 поделить на 8 сможете самостоятельно? Результат далек от требуемых 500...
С этими 8 мегагерцами тоже не все радужно. Вы пытаетесь учить людей по принципу - "делай как я", а очень часто верен обратный принцип. Почитайте сами книгу Кернигана и Ричи, которую советуете читать другим. Оттуда узнаете, что в С тип по умолчанию - int. Тип этот платформозависимый и знаковый, и в случае с AVR имеет всего 16 бит. Т.е. любое прямое указание числа в тексте однозначно имеет именно этот тип. Определение константы через дефайн используется в дальнейшем как простая текстовая подстановка. Далее компилятор обрежет Ваши указанные 8000000 до.. того самого типа по умолчанию - int. Что из этого получится попробуйте догадаться сами.
Хотя раз этого не случилось за несколько лет, что существует Ваш ресурс подскажу - после числовой константы допустимо ( в этом случае - необходимо) указывать ее тип. В этом случае требуется 32 битовый беззнаковый unsigned long. Сам дефайн получится -
Код:
#define F_CPU 8000000UL
Еще - Вы сами пробуете проделать то, что предлагаете другим? Я в этом сомневаюсь. Проделайте начиная с пункта 2 -
Цитата:
2) Создайте папку для тестового проекта - например C:WinAVR\_test
, по пункт 6 -
Цитата:
6) Компиляция проекта
. Не отступайте от своих рекомендаций ни на шаг! Поставьте себя на место человека делающего самые первые шаги. И посмотрите на то, что получите в действительности. Результат Вас удивит....
kison вне форума  
Непрочитано 18.01.2009, 23:33  
avr123-nm-ru
Почётный гражданин KAZUS.RU
 
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
avr123-nm-ru на пути к лучшему
По умолчанию

Вы думаете что скриншоты я в фотошопе нарисовал чтоль ???

Ну думайте.

\

Вот точка останова до паузы 500 мкС



Вот точка останова после



ПоСчитайте величину паузы.

Файлы проекта лежат там же
http://avr123.nm.ru/04.htm

сразу под скриншотом протеуса.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
avr123-nm-ru вне форума  
Непрочитано 19.01.2009, 01:36  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию

Сообщение от avr123-nm-ru
Вы думаете что скриншоты я в фотошопе нарисовал чтоль ???
А, в фотошопе... Ну хоть рисуете хорошо
Результат компиляции:
(Я включил оптимизацию Os, без этого задержка будет непредсказуемой. У Вас в пошаговой инструкции по созданию мейкфайла про оптимизацию нет ни слова...)
Цитата:
avr-gcc.exe -mmcu=atmega16 -Wall -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT test_delay.o -MF dep/test_delay.o.d -c ../test_delay.c
In file included from ../test_delay.c:2:
f:/winavr/bin/../avr/include/util/delay.h:85:3: warning: #warning "F_CPU not defined for ‹util/delay.h›"
../test_delay.c:5:1: warning: "F_CPU" redefined
f:/winavr/bin/../avr/include/util/delay.h:86:1: warning: this is the location of the previous definition
../test_delay.c:8: warning: return type of 'main' is not 'int'
Build succeeded with 4 Warnings...
На варнинги следует забивать? Интересный подход.
Симулятор:
‹center›
-- Прилагается рисунок: --
‹IFRAME src = "nuke/users_images/19012009/8992056.GIF" frameborder="0" name="fr1922321" scrolling="yes" width="470" height="442" align="bottom"›[img]nuke/users_images/19012009/8992056.GIF[/img]
‹font color=red›Рисунок не умещается на странице и поэтому сжат!‹/font›
Для того, чтобы просмотреть его полностью, щелкните здесь.

‹/IFRAME›
‹/center›
kison вне форума  
Непрочитано 19.01.2009, 01:37  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию

Не понял как вставить сразу две картинки...
Вторая:

-- Прилагается рисунок: --

kison вне форума  
Непрочитано 19.01.2009, 01:58  
avr123-nm-ru
Почётный гражданин KAZUS.RU
 
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
avr123-nm-ru на пути к лучшему
По умолчанию

Т.е. пауза 500 циклов-тактов.

Спасибо.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
avr123-nm-ru вне форума  
Непрочитано 19.01.2009, 02:18  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию

Удивительно - в проекте и F_CPU задано в мейкфайле, и оптимизация включена.. На Вашей пошаговой инструкции этого нет. Зачем вообще эта строка? С какой целью она присутствует в исходнике? Представим что я восторженный читатель,и задаю Вам, как автору курса вопрос. И ес-но хочу услышать ответ.
Хотя и с Вашим мейкфайлом сборка не совсем чистая:
Цитата:
Compiling C: test.c
avr-gcc -c -mmcu=atmega8 -I. -gdwarf-2 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./test.lst -std=gnu99 -Wundef -MMD -MP -MF .dep/test.o.d test.c -o test.o
test.c:17:1: warning: "F_CPU" redefined
‹command-line›: warning: this is the location of the previous definition
test.c:20: warning: return type of 'main' is not 'int'
Для программы в три строки два предупреждения получить, это стараться надо
Вообще весело получается. В шаблоне мейкфайла оказывается и 8МГц и Os включены по умолчанию. То есть действительно соберется правильно. Но вот если у человека на реальном девайсе такт будет другой... Ох и упарится он искать, где и что надо менять. Тем более,что загадочное кривое определение F_CPU присутствует прямо в файле. Те картинки, что я приводил выше не годятся - они рассчитаны на незаданную тактовую. В этом я был неправ. Но курс все равно бесполезен, то что в нем описано напоминает танцы с бубном. Не зададим нужную частоту, авось само заработает... И вот ведь совпадение...
kison вне форума  
Непрочитано 19.01.2009, 02:26  
avr123-nm-ru
Почётный гражданин KAZUS.RU
 
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
avr123-nm-ru на пути к лучшему
По умолчанию

Сообщение от kison
Но курс все равно бесполезен
Прикольно !
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
avr123-nm-ru вне форума  
Непрочитано 19.01.2009, 02:44  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию

Сообщение от avr123-nm-ru
Прикольно !
На самом деле печально. Ведь у нас как -
Цитата:
кто воевать умеет - тот воюет, кто не умеет - учит воевать
Именно в этом и печаль, читатели Вашего курса обречены на вечное изобретение мигалок светодиодами. Так как в нем нет ни описания языка С ( а в нем меньше 10 операторов собственно языка!), ни ассемблера, ни приемов программирования (не готовых проектов с лозунгом - делай как у меня, а обоснования именно такого решения. Причем желательно показать несколько вариантов решения одной задачи).
Народная мудрость гласит - вместо рыбы лучше дать человеку удочку. Вы же даете именно рыбу. И когда человек, изучавший программирование по Вашему курсу, захочет сделать самолет, то у него все равно получится рыба... Правда курс бесплатен, а в нашей стране нахаляву и уксус пьют. Так и с курсом.
kison вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите компилировать Chinga02 Микроконтроллеры, АЦП, память и т.д 3 20.01.2009 22:22
Как остановить мк? Как сделать паузу? skllks Микроконтроллеры, АЦП, память и т.д 8 27.12.2008 17:27
Как компилировать библиотеки в IAR? Prime Микроконтроллеры, АЦП, память и т.д 5 22.06.2007 14:55
Поможете? Дистанционное управление. gust Автоматика и аппаратура связи 0 18.10.2005 17:24


Часовой пояс GMT +4, время: 20:28.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot