AVR studio в вопросах и ответах
- ROMan2947
- Грызет канифоль
- Сообщения: 287
- Зарегистрирован: Сб янв 23, 2016 00:59:59
- Откуда: Чебоксары
Re: AVR studio в вопросах и ответах
Здравствуйте!!
Установил AS7 при отладке программы в окне I\O не понятно почему регистр PIN не меняет свое состояние в соответствии с регистром PORT....порт настроен на вход, т.е. DDR выставлен в 0....так и должно быть или нужно что-то настроить?
Установил AS7 при отладке программы в окне I\O не понятно почему регистр PIN не меняет свое состояние в соответствии с регистром PORT....порт настроен на вход, т.е. DDR выставлен в 0....так и должно быть или нужно что-то настроить?
- Реклама
Re: AVR studio в вопросах и ответах
Так и должно быть, если лапа настроена как IN.
- ROMan2947
- Грызет канифоль
- Сообщения: 287
- Зарегистрирован: Сб янв 23, 2016 00:59:59
- Откуда: Чебоксары
Re: AVR studio в вопросах и ответах
что за предупреждение????
я только начал изучать, прошу терпения...
Warning control reaches end of non-void function [-Wreturn-type]
#include <AVR/io.h>
#include <stdint.h>
unsigned char i=0;
int nastroika(void)
{
DDRA=0x00;
PORTA=0xFF;
DDRB=0xFF;
PORTB=0x00;
}
int var()
{
if ((PINA&(1<<0))==0)
{
i=1;
}
if ((PINA&(1<<1))==0)
{
i=2;
}
}
int main(void)
{
nastroika();
while (1)
{
var();
PORTB=i;
}
}
я только начал изучать, прошу терпения...
Warning control reaches end of non-void function [-Wreturn-type]
#include <AVR/io.h>
#include <stdint.h>
unsigned char i=0;
int nastroika(void)
{
DDRA=0x00;
PORTA=0xFF;
DDRB=0xFF;
PORTB=0x00;
}
int var()
{
if ((PINA&(1<<0))==0)
{
i=1;
}
if ((PINA&(1<<1))==0)
{
i=2;
}
}
int main(void)
{
nastroika();
while (1)
{
var();
PORTB=i;
}
}
Re: AVR studio в вопросах и ответах
Любая функция у которой тип возвращаемых данных отличен от void должна завершаться return
Это Си
Это Си
- Олегыч1
- Поставщик валерьянки для Кота
- Сообщения: 1941
- Зарегистрирован: Пт фев 27, 2015 20:57:08
- Откуда: Курск
Re: AVR studio в вопросах и ответах
Приветствую уважаемые радиокоты! В программировании только начинаю, поэтому не судите строго) Собрал первый программатор (самый простой, тот что Громова) Приобрел AVR-микроконтроллер по имени ATMEGA 8А. Прошить удалось (вроде бы
) двумя пробными прошивками, но подскажите пожалуйста:
1) Как проверить на практике то, что я прошил? Что должно быть и на каких выводах МК?
2) как самому написать (или исправить уже имеющуюся) прошивку таким образом, чтобы на выводах микросхемы были сигналы допустим по 1 секунде длительностью , и по 1 секунде скважностью, которые идут например друг за другом...
3) Какие выводы МК из всех, что в датащите вообще подлежат программированию?
4) В датащите на данный МК выводы показаны разноцветными цветами. Что обозначают этими цветами?
=================
Прошивки прилагаю:
1) Как проверить на практике то, что я прошил? Что должно быть и на каких выводах МК?
2) как самому написать (или исправить уже имеющуюся) прошивку таким образом, чтобы на выводах микросхемы были сигналы допустим по 1 секунде длительностью , и по 1 секунде скважностью, которые идут например друг за другом...
3) Какие выводы МК из всех, что в датащите вообще подлежат программированию?
4) В датащите на данный МК выводы показаны разноцветными цветами. Что обозначают этими цветами?
=================
Прошивки прилагаю:
- Вложения
-
- 022M48.hex
- (398 байт) 338 скачиваний
-
- add.hex
- (125 байт) 320 скачиваний
- Реклама
- СКАЗОЧНИК
- Идёт направо - песнь заводит, Налево - сказку говорит.
- Сообщения: 5000
- Зарегистрирован: Чт апр 21, 2011 17:55:50
- Откуда: Иркутск
Re: AVR studio в вопросах и ответах
1. Лучше бы даташит с раноцветными выводами выложили и где вы такой нашли....
2. А также, его можно было почитать чуток, там же написано, какие выводы "поддаются программированию".
3. Без дизассемблирования вы ХЕКС файл никак не подправите (сюда же относят и знания самого ассемблера).
4. Проверить записанное в МК можно просто прочитав тем же программатором и сравнив его ХЕКС с оригиналом.
5. И вообще, начните с обучалки и будет вам счастье!
З.Ы. Прошивки ваши практически бесполезны. Никто даже смотреть не будет. Это не исходник.
2. А также, его можно было почитать чуток, там же написано, какие выводы "поддаются программированию".
3. Без дизассемблирования вы ХЕКС файл никак не подправите (сюда же относят и знания самого ассемблера).
4. Проверить записанное в МК можно просто прочитав тем же программатором и сравнив его ХЕКС с оригиналом.
5. И вообще, начните с обучалки и будет вам счастье!
З.Ы. Прошивки ваши практически бесполезны. Никто даже смотреть не будет. Это не исходник.
Станислав
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: AVR studio в вопросах и ответах
Э не, это так не работает.
Что должно быть на выводах работающего контроллера зависит ИСКЛЮЧИТЕЛЬНО от прошивки(и битов конфигурации контроллера - он может тупо не заработать из-за неверной установки источника тактовых импульсов) которую в него залили. На этот вопрос ответить может только автор прошивки, если не заниматься реверсингом прошивки(дело это крайне хлопотное, гораздо затратнее чем написать с нуля по поставленному Т.З.).
В даташите на МК нет разноцветных выводов, ты скачал не оригинальный даташит а по всей видимости какой-то переработанный для удобства кому-то, вот у него и спрашивай. Но в качестве предположения - цветами определяется группы выводов по функциональному назначению - например питания, сброса, универсальных, входы АЦП и т.д.
Лучше скачай оригинальный даташит, но он правда на английском. На контроллер ATMEGA8A даташит идёт одним файлом и полностью исчерпывающий, надо только тщательно его изучить вдоль и поперёк. Прочитав даташит ты узнаешь что и как можно делать буквально с каждым выводом, но с наскоку это не получится. Сначала, бывает очень трудно понять зачем контроллеру две пары выводов питания, и почему обязательно их подключать но это обусловлено техническими ограничениями. Не все доступные выводы можно использовать одинаково эффективно, читай даташит и ужасайся - в реальных схемах практически не получается использовать ни один порт контроллера полностью на все 8 бит, в этом отношении он не из самых удобных.
Да, и имей в виду что MEGA8 и практически всё семейство контроллеров(с индексами 8A 8P 8PA - это несколько разные модификации контроллеров не совместимые на уровне прошивок но совместимые на уровне ассемблера и ЯВУ и небольшими ньюансами в реализации некоторых функций) это весьма простые для понимания контроллеры. Простые как валенок, по сравнению с другими современными контроллерами.
Что должно быть на выводах работающего контроллера зависит ИСКЛЮЧИТЕЛЬНО от прошивки(и битов конфигурации контроллера - он может тупо не заработать из-за неверной установки источника тактовых импульсов) которую в него залили. На этот вопрос ответить может только автор прошивки, если не заниматься реверсингом прошивки(дело это крайне хлопотное, гораздо затратнее чем написать с нуля по поставленному Т.З.).
В даташите на МК нет разноцветных выводов, ты скачал не оригинальный даташит а по всей видимости какой-то переработанный для удобства кому-то, вот у него и спрашивай. Но в качестве предположения - цветами определяется группы выводов по функциональному назначению - например питания, сброса, универсальных, входы АЦП и т.д.
Лучше скачай оригинальный даташит, но он правда на английском. На контроллер ATMEGA8A даташит идёт одним файлом и полностью исчерпывающий, надо только тщательно его изучить вдоль и поперёк. Прочитав даташит ты узнаешь что и как можно делать буквально с каждым выводом, но с наскоку это не получится. Сначала, бывает очень трудно понять зачем контроллеру две пары выводов питания, и почему обязательно их подключать но это обусловлено техническими ограничениями. Не все доступные выводы можно использовать одинаково эффективно, читай даташит и ужасайся - в реальных схемах практически не получается использовать ни один порт контроллера полностью на все 8 бит, в этом отношении он не из самых удобных.
Да, и имей в виду что MEGA8 и практически всё семейство контроллеров(с индексами 8A 8P 8PA - это несколько разные модификации контроллеров не совместимые на уровне прошивок но совместимые на уровне ассемблера и ЯВУ и небольшими ньюансами в реализации некоторых функций) это весьма простые для понимания контроллеры. Простые как валенок, по сравнению с другими современными контроллерами.
Re: AVR studio в вопросах и ответах
Это все равно, что сказать "длиной в 1 килограмм" . Не употребляй слов, значения которых не знаешь. Скважность - отношение периода к длительности импульса, безразмерная величина.Олегыч1 писал(а): по 1 секунде скважностью
- Олегыч1
- Поставщик валерьянки для Кота
- Сообщения: 1941
- Зарегистрирован: Пт фев 27, 2015 20:57:08
- Откуда: Курск
Re: AVR studio в вопросах и ответах
Прошу прощения, видимо не так понял значение слова скважность. В моем понимании это "пробелы" между импульсами. У них соответственно тоже есть временная длинна (ну это я так подумалЭто все равно, что сказать "длиной в 1 килограмм"
А здесь тот самый датащит на мою атмегу. http://www.atmel.com/images/atmel-8159- ... asheet.pdf
Еще вопрос назрел. Ассэмблер говорят довольно не простой язык программирования для новичка. Я собирался С++ попробовать в освоении для написания несложных прошивок.
1) С помощью этого языка можно исправлять НЕХ -файлы?
2) И, если не затруднит, подскажите пожалуйста, сколько независимых друг от друга светодиодов можно повесить на данную атмегу?
- СКАЗОЧНИК
- Идёт направо - песнь заводит, Налево - сказку говорит.
- Сообщения: 5000
- Зарегистрирован: Чт апр 21, 2011 17:55:50
- Откуда: Иркутск
Re: AVR studio в вопросах и ответах
все выводы, которые с буквой Р, вы можете сделать как входом, так и выходом.
Светодиодов можно повесить хоть 1000 штук и больше, главное, знать как вешать и что вам от них нужно еще.
Станислав
Re: AVR studio в вопросах и ответах
1. С помощью никакого языка нельзя мсправлять НЕХ-файлы. Точнее, их можно исправлять в обычном Блокноте, но для этого квалификация программера должна быть очень выше среднего, до чего еще очень далекооооо. А так - для взлома чужого хексика ( если бы свой, то был бы исходник ) нужно сделать декомпиляцию, и уж в полученный псевдо-исходник вносить правки, потом компилировать заново. Язык - чтобы попробовать и убедиться, что это - не твое, можно начать (и кончить
Си), а если зацепит блажь серьезно заниматься МК-ми, ассемблер знать крайне желательно, т.к. владение ассемблером предполагает детальное знакомство с "нутром" МК.
2. Столько, сколько есть выходов в МК. Если надо больше, число выходов можно увеличить до любого разумного предела путем подключения внешних регистров.
А вообще очень чувствуется, что автор не заходил сюда : http://radiokot.ru/start/mcu_fpga/avr/ . А зря. Там много разумного, доброго, вечного, как говорил Некрасов.
--------------------------------------------
Не стоит благодарности, достаточно тискануть +
2. Столько, сколько есть выходов в МК. Если надо больше, число выходов можно увеличить до любого разумного предела путем подключения внешних регистров.
А вообще очень чувствуется, что автор не заходил сюда : http://radiokot.ru/start/mcu_fpga/avr/ . А зря. Там много разумного, доброго, вечного, как говорил Некрасов.
--------------------------------------------
Не стоит благодарности, достаточно тискануть +
- СКАЗОЧНИК
- Идёт направо - песнь заводит, Налево - сказку говорит.
- Сообщения: 5000
- Зарегистрирован: Чт апр 21, 2011 17:55:50
- Откуда: Иркутск
Re: AVR studio в вопросах и ответах
Есть еще Чарли мультиплексинг, кроме них.Jack_A писал(а):путем подключения внешних регистров.
Да, и на Си++ оооооочень мало кто конкретно программирует МК. Обычно Си и Ассемблер. Остальное от лукавого.
Станислав
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: AVR studio в вопросах и ответах
Однако, ATMEL переформатировала всю документацию?
На С++ много под этот контроллер не напишешь - сразу же упрёшься в маленький объём памяти, ему для комфорта подавай ATMEGA328.
Начинать надо однозначно с ассемблера, иначе все остальные языки будут просто магией. Ну или если совсем не хочешь заморачиваться, начинай с ардуины.
На С++ много под этот контроллер не напишешь - сразу же упрёшься в маленький объём памяти, ему для комфорта подавай ATMEGA328.
Начинать надо однозначно с ассемблера, иначе все остальные языки будут просто магией. Ну или если совсем не хочешь заморачиваться, начинай с ардуины.
- Олегыч1
- Поставщик валерьянки для Кота
- Сообщения: 1941
- Зарегистрирован: Пт фев 27, 2015 20:57:08
- Откуда: Курск
Re: AVR studio в вопросах и ответах
Jack_A благодарю за полезную ссылку. Буду вникать глубже, дабы не задавать глупых вопросов).
Теперь буду знать, что СИ и СИ++ это не одно и тоже)
Теперь буду знать, что СИ и СИ++ это не одно и тоже)
- ROMan2947
- Грызет канифоль
- Сообщения: 287
- Зарегистрирован: Сб янв 23, 2016 00:59:59
- Откуда: Чебоксары
Re: AVR studio в вопросах и ответах
так вот в чем дело значит ща проверим)))спасибо!axillent писал(а):Любая функция у которой тип возвращаемых данных отличен от void должна завершаться return
Это Си
Re: AVR studio в вопросах и ответах
Я с этим методом знаком только понаслышке, но сомневаюсь, что все возможные независимые комбинации зажигания диодов могут быть реализованы. А про СИ++ я не говорил, я на нем даже для ПК не пишуСКАЗОЧНИК писал(а): Есть еще Чарли мультиплексинг, кроме них.
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: AVR studio в вопросах и ответах
Конечно не все комбинации. Максимум можно зажечь половину всех светодиодов, если их переключать то можно зажечь все светодиоды, но уже со скважностью равной 2 - гораздо лучше чем при динамической индикации. Но код который будет управлять этим делом усложнится неймоверно и... возникает простое желание использовать для этих целей регистры висящие на SPI. Код получается простой, поддержка внешних регистров - аппаратная...
- СКАЗОЧНИК
- Идёт направо - песнь заводит, Налево - сказку говорит.
- Сообщения: 5000
- Зарегистрирован: Чт апр 21, 2011 17:55:50
- Откуда: Иркутск
Re: AVR studio в вопросах и ответах
Да, я так и делал. Динамическая индикация через Чарлиплексинг. 12 светодиодов, которые вращаются вокруг центра, в нужный момент включаются. Эта хреновина даже буквы писала. Вот такой своеобразный телевизер.
И заняли они у меня всего 4 вывода на МК.
Станислав
- Олегыч1
- Поставщик валерьянки для Кота
- Сообщения: 1941
- Зарегистрирован: Пт фев 27, 2015 20:57:08
- Откуда: Курск
Re: AVR studio в вопросах и ответах
Подскажите пожалуйста еще один момент. На примере атмега 8. Мне необходимо, чтобы после отпускания кнопки лампочки еще выполнили определенную команду. Получается, AVR должен быть все время запитан? Сколько он будет потреблять, когда никакая команда не выполняется ( то есть в покое). И можно ли этот момент как-то обойти, чтобы потребление тока было равно нулю в состоянии покоя?
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: AVR studio в вопросах и ответах
А "лампочки" святым духом питаться будут? В даташите есть ответ на этот вопрос. Чем выше рабочая частота тем больше потребляет, и если б это было не так то современные ноуты работали бы от батарей месяцами.



