AVR studio в вопросах и ответах
- d@vinchi
- Первый раз сказал Мяу!
- Сообщения: 34
- Зарегистрирован: Ср янв 05, 2011 16:33:15
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
Всем привет! помогите новичку в зеленых вопросах...
Сейчас делаю устройство на меге 8535 в CVAVR, что-то отслеживаю в протеусе, но в плане дебага и трассировки ужасно не удобно... Краем левого уха слышал что есть еще AVR Studio - вот скажите, стоит перйти на студию и каке приемущества, для меня главное построчный степ и видеть что в переменных и портах творится...
и если все-таки AVR Studio круче CVAVR то какие могут быть траблы с переносом проета в студию? студия может шить прошивку LPT программатором "пять проводков"?
Сейчас делаю устройство на меге 8535 в CVAVR, что-то отслеживаю в протеусе, но в плане дебага и трассировки ужасно не удобно... Краем левого уха слышал что есть еще AVR Studio - вот скажите, стоит перйти на студию и каке приемущества, для меня главное построчный степ и видеть что в переменных и портах творится...
и если все-таки AVR Studio круче CVAVR то какие могут быть траблы с переносом проета в студию? студия может шить прошивку LPT программатором "пять проводков"?
- Necroteeth
- Потрогал лапой паяльник
- Сообщения: 362
- Зарегистрирован: Вс окт 10, 2010 17:43:48
- Откуда: Воронеж
Re: AVR studio 4 в вопросах и ответах
d@vinchi писал(а):студия может шить прошивку LPT программатором "пять проводков"?
когда я спрашивал, сказали, что нет. я решил поверить:)
- d@vinchi
- Первый раз сказал Мяу!
- Сообщения: 34
- Зарегистрирован: Ср янв 05, 2011 16:33:15
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
ну и какой результат проверки?
- Necroteeth
- Потрогал лапой паяльник
- Сообщения: 362
- Зарегистрирован: Вс окт 10, 2010 17:43:48
- Откуда: Воронеж
Re: AVR studio 4 в вопросах и ответах
я ПОВЕРИЛ, а не проверил 
искать искал, но не нашел. поэтому пользуюсь PonyProg2000
искать искал, но не нашел. поэтому пользуюсь PonyProg2000
- DX168B
- Друг Кота
- Сообщения: 4468
- Зарегистрирован: Вс янв 24, 2010 19:19:52
- Откуда: Главный Улей России (Moscow)
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
Ищите UniProf. Я им пользуюсь. Шьёт 5ю проводами с LPT.
Там даже есть фича - LPT Pins.
То есть можно настроить ноги LPT порта почти под любую распайку втыкаемого LPT шнура.
Вот, качайте отсуда:
Часть первая: ссылка
Часть вторая: ссылка
Часть третья: ссылка
Там даже есть фича - LPT Pins.
То есть можно настроить ноги LPT порта почти под любую распайку втыкаемого LPT шнура.
Вот, качайте отсуда:
Часть первая: ссылка
Часть вторая: ссылка
Часть третья: ссылка
I am DX168B and this is my favourite forum on internet!
- d@vinchi
- Первый раз сказал Мяу!
- Сообщения: 34
- Зарегистрирован: Ср янв 05, 2011 16:33:15
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
Поставил студию, пролез интерфейс, почитал статейки что в ней и как - все чудесно... Начал переносить проект с CVAVR, а студия ничего из объявленного в инклудах не видит, даже файлов проекта, которые лежат в одной папке. Подскажите где подкрутить?
- DX168B
- Друг Кота
- Сообщения: 4468
- Зарегистрирован: Вс янв 24, 2010 19:19:52
- Откуда: Главный Улей России (Moscow)
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
Для начала, установите ещё и WinAVR.
Инклуды надо будет сменить. И половину проекта тоже переписать.
CV AVR и WinAVR+AVR Studio - это совершенно разные вещи.
Инклуды надо будет сменить. И половину проекта тоже переписать.
CV AVR и WinAVR+AVR Studio - это совершенно разные вещи.
I am DX168B and this is my favourite forum on internet!
- d@vinchi
- Первый раз сказал Мяу!
- Сообщения: 34
- Зарегистрирован: Ср янв 05, 2011 16:33:15
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
WinAVR поставил как пологается до установки студии, с этим нормуль, а вот с переносом проекта полный пипец... как в студии читать\писать определеный бит в порту? вот код из CVAVR в студии4 (мега8535, инициализация есть, но тут выкинул для краткости):
на строке LED1 = 0; и LED1 = 1; ошибки:
как этот кусок кода заточить под GCC?
P.S. уже успел в студии заметить два убийственных минуса: 1 - отсутствие возможности зокоментарить выделенный блок и соответственно раскоментарить, 2 - отсутствие возможности сворачивать куски кода (ну это уж совсем странно, вроде софтина не из каменного века, а такое лоханство)...
Код: Выделить всё
#define F_CPU 8000000UL
#include <avr\io.h>
#include <avr\iom8535.h>
#define LED1 PORTC.0
int main(void)
{
while (1)
{
LED1 = 0;
delay_ms(20);
LED1 = 1;
delay_ms(20);
}
}на строке LED1 = 0; и LED1 = 1; ошибки:
../test.c:11: error: expected ';' before numeric constant
как этот кусок кода заточить под GCC?
P.S. уже успел в студии заметить два убийственных минуса: 1 - отсутствие возможности зокоментарить выделенный блок и соответственно раскоментарить, 2 - отсутствие возможности сворачивать куски кода (ну это уж совсем странно, вроде софтина не из каменного века, а такое лоханство)...
- DX168B
- Друг Кота
- Сообщения: 4468
- Зарегистрирован: Вс янв 24, 2010 19:19:52
- Откуда: Главный Улей России (Moscow)
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
У тебя ошибка в строке #define LED1 PORTC.0
Таких извратов нет в WinAVR, как PORTC.0
Я сам пока начинающий в Си для AVR, всё на АСМе делаю.
Но могу предложить такой вариант:
Таких извратов нет в WinAVR, как PORTC.0
Я сам пока начинающий в Си для AVR, всё на АСМе делаю.
Но могу предложить такой вариант:
Код: Выделить всё
#define F_CPU 8000000UL
#include <avr\io.h>
#include <avr\iom8535.h>
int main(void)
{
while (1)
{
asm("cbi 0x15, 0");
delay_ms(20);
asm("sbi 0x15, 0");
delay_ms(20);
}
}
I am DX168B and this is my favourite forum on internet!
- d@vinchi
- Первый раз сказал Мяу!
- Сообщения: 34
- Зарегистрирован: Ср янв 05, 2011 16:33:15
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
asm("cbi 0x15, 0");
это конечно круто, но я с ASM походу как ты с Си...
0х15 - в твоем примере это адрес порта С? 0 - это то что в него пишется? если так, то мне надо не в весь порт записать, а в определенный его бит...
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
уважаемые! делать ассемблерные вставки в сишном коде для того, чтобы дрыгнуть ножкой МК - а вы вообще зачем за Си взялись?! это изврат
и советую сразу стараться писать программы так, чтобы не делать лишнего. в частности, что ваша программа делает? она через равные промежутки времени меняет уровень на пине - так? вот и надо писать буквально то же самое, но на языке Си. В буквальном переводе на человеческий ваша программа делает следующее: бесконечно делает такое: сначала устанавливает 1 в пине, затем ждет определенный интервал, затем устанавливает 0 на том же самом пине, и снова ждет тот же самый интервал. согласитесь, что это немного избыточно по сравнению с тем, что на самом деле она делает (как я сформулировал). то есть даже в такой простенькой задачке вы написали НЕ ТО, что ХОТЕЛИ. если будете и далее придерживаться такого принципа, вы можете наделать кучу таких ошибок, что и сами голову сломаете, и желающих помогать не найдете.
вот как на самом деле должна выглядеть ваша программа:
Напоминаю, что операция ^ означает "побитное исключающее или". макрос _BV(x) - это стандартный макрос для WinAVR (пользуйтесь им!), он определен так:
#define _BV(x) (1 << (x))
по сути он устанавливает один-единственный бит в байте. указывая в качестве параметра этого макроса ИМЯ соответствующего пина (в данном случае PC0) вы автоматически получаете возмоджность работать именно с этим битом. использовать нормера битов вместо их имен - не советую.
о том, как отдельные биты устанавливать и сбрасывать, а так же о кое чем еще, я написал небольшой FAQ.
вот как на самом деле должна выглядеть ваша программа:
Код: Выделить всё
while(1){
PORTC ^= _BV(PC0); // меняем уровень пина
_delay_ms(20); // ждем требуемый интервал
}
Напоминаю, что операция ^ означает "побитное исключающее или". макрос _BV(x) - это стандартный макрос для WinAVR (пользуйтесь им!), он определен так:
#define _BV(x) (1 << (x))
по сути он устанавливает один-единственный бит в байте. указывая в качестве параметра этого макроса ИМЯ соответствующего пина (в данном случае PC0) вы автоматически получаете возмоджность работать именно с этим битом. использовать нормера битов вместо их имен - не советую.
о том, как отдельные биты устанавливать и сбрасывать, а так же о кое чем еще, я написал небольшой FAQ.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- d@vinchi
- Первый раз сказал Мяу!
- Сообщения: 34
- Зарегистрирован: Ср янв 05, 2011 16:33:15
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
то есть даже в такой простенькой задачке вы написали НЕ ТО, что ХОТЕЛИ
ARV, да я же для примера накдал, чтобы нагляднее было, понятно чо в ральных условиях надо как ты описал... За фак спасибо, тоже пригодится... в результате сделал так:
Код: Выделить всё
#define F_CPU 8000000UL
#include <avr\io.h>
#include <avr\iom8535.h>
#include <util\delay.h>
typedef struct Bits_t
{
uint8_t Bit0 :1;
uint8_t Bit1 :1;
uint8_t Bit2 :1;
uint8_t Bit3 :1;
uint8_t Bit4 :1;
uint8_t Bit5 :1;
uint8_t Bit6 :1;
uint8_t Bit7 :1;
}Bits;
#define PortCBits (*((volatile Bits*) & PORTC))
#define LED1 PortCBits.Bit0
void InitCore(void)
{
//бла-бла-бла
}
int main(void)
{
InitCore();
while (1)
{
LED1 = 0;
_delay_ms(20);
LED1 = 1;
_delay_ms(20);
}
}получилось точто нужно!
ЗЫ: это только пример, а не рельный код!!!
Re: AVR studio 4 в вопросах и ответах
Как включить формирование листинга?
На оператор .list ноль внимания...
На оператор .list ноль внимания...
- ChipKiller
- Сверлит текстолит когтями
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Re: AVR studio 4 в вопросах и ответах
Project->Assembler Option и ставишь галку на создание листинга 
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
ну и зачем давать плохие примеры? вот вы корячились, корячились, определяли битовые поля и т.п., а теперь ответьте на вопрос: ЗАЧЕМ ВСЕ ЭТО?! если после всего вы описали макрос LED1, который скрыл все от программиста... и битовые поля в том числе. только для того, чтобы сделать НЕПОНЯТНО? по каким признакам я должен понять, что после LED1 = 1; светодиод загористя? а вдруг мне захочется написать LED1 = 25; - что будет? как я должен понять, что это НЕ ПЕРЕМЕННАЯ?! мне кажется, это все не делает программу понятнее, а значит, лучше. более того, лично я считаю скрывание за макросами ВАЖНЫХ моментов друным тоном, повышающим риск возникновения ошибок. вы спрятали обращение к биту порта, подменив традиционные операции манипулирования битами оператором присваивания. если в записи PORTC |= 1<<PB0; ясно все всем, кто хоть малое представление имеет об AVR (читал даташиты хотя бы), то ваша запись может поставить в тупик и опытного программиста, если, конечно, в ней будет не 5 строк.d@vinchi писал(а):ЗЫ: это только пример, а не рельный код!!!
есть хороший философский принцип, известный как бритва Оккама, который звучит так: "не нужно порождать сущности без необходимости". в переводе на обычный язык этот принцип можно сформулировать так: если что-то может быть решено самым простым и очевидным способом, то именно это решение и будет правильным. не надо строить нагромождение макросов, переменных, типов и т.д., если в них нет реальной необходимости.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- kvark85
- Встал на лапы
- Сообщения: 108
- Зарегистрирован: Сб ноя 08, 2008 21:23:06
- Откуда: Харьков
- Контактная информация:
Re: AVR studio 4 в вопросах и ответах
Здравствуйте. Подскажите пожалуйста. Симулирую апликуху AVR242(часы реального времени). Единственное что поменял в ней, так это пересоздал проект для Tiny2313. Код программы прикладываю. При симуляции в EEPROM не записываются таблицы. Компилируется проэкт, а EEPROM остается без изменения.
- Вложения
-
- Kod.asm
- (18.27 КБ) 524 скачивания
- sergeys
- Поставщик валерьянки для Кота
- Сообщения: 1946
- Зарегистрирован: Сб сен 11, 2010 13:45:01
- Откуда: Екатеринбург
Re: AVR studio 4 в вопросах и ответах
Привет! У мну опять есть вопрос! Вот он: можно ли добавить в АВРстудию другие МК (у мну нет даже тини2313)? Какие-то библиотеки скачать?
Ко мне можно на "ты", так даже лучше!
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: AVR studio 4 в вопросах и ответах
sergeys писал(а):Привет! У мну опять есть вопрос! Вот он: можно ли добавить в АВРстудию другие МК (у мну нет даже тини2313)? Какие-то библиотеки скачать?
Программу обновить =)
Какая у вас версия?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: AVR studio 4 в вопросах и ответах
sergeys писал(а):4.1
У меня 4.18
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]