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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
d@vinchi
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Ср янв 05, 2011 16:33:15
Контактная информация:

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

Сообщение d@vinchi »

Всем привет! помогите новичку в зеленых вопросах...
Сейчас делаю устройство на меге 8535 в CVAVR, что-то отслеживаю в протеусе, но в плане дебага и трассировки ужасно не удобно... Краем левого уха слышал что есть еще AVR Studio - вот скажите, стоит перйти на студию и каке приемущества, для меня главное построчный степ и видеть что в переменных и портах творится...
и если все-таки AVR Studio круче CVAVR то какие могут быть траблы с переносом проета в студию? студия может шить прошивку LPT программатором "пять проводков"?
Аватара пользователя
Necroteeth
Потрогал лапой паяльник
Сообщения: 362
Зарегистрирован: Вс окт 10, 2010 17:43:48
Откуда: Воронеж

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

Сообщение Necroteeth »

d@vinchi писал(а):студия может шить прошивку LPT программатором "пять проводков"?

когда я спрашивал, сказали, что нет. я решил поверить:)
Аватара пользователя
d@vinchi
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Ср янв 05, 2011 16:33:15
Контактная информация:

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

Сообщение d@vinchi »

ну и какой результат проверки?
Аватара пользователя
Necroteeth
Потрогал лапой паяльник
Сообщения: 362
Зарегистрирован: Вс окт 10, 2010 17:43:48
Откуда: Воронеж

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

Сообщение Necroteeth »

я ПОВЕРИЛ, а не проверил :)
искать искал, но не нашел. поэтому пользуюсь PonyProg2000
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

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

Сообщение DX168B »

Ищите UniProf. Я им пользуюсь. Шьёт 5ю проводами с 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 в вопросах и ответах

Сообщение d@vinchi »

Поставил студию, пролез интерфейс, почитал статейки что в ней и как - все чудесно... Начал переносить проект с CVAVR, а студия ничего из объявленного в инклудах не видит, даже файлов проекта, которые лежат в одной папке. Подскажите где подкрутить?
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

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

Сообщение DX168B »

Для начала, установите ещё и WinAVR.
Инклуды надо будет сменить. И половину проекта тоже переписать. :o :)))
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 в вопросах и ответах

Сообщение d@vinchi »

WinAVR поставил как пологается до установки студии, с этим нормуль, а вот с переносом проекта полный пипец... как в студии читать\писать определеный бит в порту? вот код из CVAVR в студии4 (мега8535, инициализация есть, но тут выкинул для краткости):

Код: Выделить всё

#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 в вопросах и ответах

Сообщение DX168B »

У тебя ошибка в строке #define LED1 PORTC.0
Таких извратов нет в 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 в вопросах и ответах

Сообщение d@vinchi »

asm("cbi 0x15, 0");

это конечно круто, но я с ASM походу как ты с Си...
0х15 - в твоем примере это адрес порта С? 0 - это то что в него пишется? если так, то мне надо не в весь порт записать, а в определенный его бит...
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

уважаемые! делать ассемблерные вставки в сишном коде для того, чтобы дрыгнуть ножкой МК - а вы вообще зачем за Си взялись?! это изврат :))) и советую сразу стараться писать программы так, чтобы не делать лишнего. в частности, что ваша программа делает? она через равные промежутки времени меняет уровень на пине - так? вот и надо писать буквально то же самое, но на языке Си. В буквальном переводе на человеческий ваша программа делает следующее: бесконечно делает такое: сначала устанавливает 1 в пине, затем ждет определенный интервал, затем устанавливает 0 на том же самом пине, и снова ждет тот же самый интервал. согласитесь, что это немного избыточно по сравнению с тем, что на самом деле она делает (как я сформулировал). то есть даже в такой простенькой задачке вы написали НЕ ТО, что ХОТЕЛИ. если будете и далее придерживаться такого принципа, вы можете наделать кучу таких ошибок, что и сами голову сломаете, и желающих помогать не найдете.
вот как на самом деле должна выглядеть ваша программа:

Код: Выделить всё

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 в вопросах и ответах

Сообщение d@vinchi »

то есть даже в такой простенькой задачке вы написали НЕ ТО, что ХОТЕЛИ

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);
  }
}

получилось точто нужно!
ЗЫ: это только пример, а не рельный код!!!
Tom91
Встал на лапы
Сообщения: 108
Зарегистрирован: Пт окт 08, 2010 15:43:55

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

Сообщение Tom91 »

Как включить формирование листинга?
На оператор .list ноль внимания...
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

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

Сообщение ChipKiller »

Project->Assembler Option и ставишь галку на создание листинга :)
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

d@vinchi писал(а):ЗЫ: это только пример, а не рельный код!!!
ну и зачем давать плохие примеры? вот вы корячились, корячились, определяли битовые поля и т.п., а теперь ответьте на вопрос: ЗАЧЕМ ВСЕ ЭТО?! если после всего вы описали макрос LED1, который скрыл все от программиста... и битовые поля в том числе. только для того, чтобы сделать НЕПОНЯТНО? по каким признакам я должен понять, что после LED1 = 1; светодиод загористя? а вдруг мне захочется написать LED1 = 25; - что будет? как я должен понять, что это НЕ ПЕРЕМЕННАЯ?! мне кажется, это все не делает программу понятнее, а значит, лучше. более того, лично я считаю скрывание за макросами ВАЖНЫХ моментов друным тоном, повышающим риск возникновения ошибок. вы спрятали обращение к биту порта, подменив традиционные операции манипулирования битами оператором присваивания. если в записи PORTC |= 1<<PB0; ясно все всем, кто хоть малое представление имеет об AVR (читал даташиты хотя бы), то ваша запись может поставить в тупик и опытного программиста, если, конечно, в ней будет не 5 строк.

есть хороший философский принцип, известный как бритва Оккама, который звучит так: "не нужно порождать сущности без необходимости". в переводе на обычный язык этот принцип можно сформулировать так: если что-то может быть решено самым простым и очевидным способом, то именно это решение и будет правильным. не надо строить нагромождение макросов, переменных, типов и т.д., если в них нет реальной необходимости.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
kvark85
Встал на лапы
Сообщения: 108
Зарегистрирован: Сб ноя 08, 2008 21:23:06
Откуда: Харьков
Контактная информация:

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

Сообщение kvark85 »

Здравствуйте. Подскажите пожалуйста. Симулирую апликуху AVR242(часы реального времени). Единственное что поменял в ней, так это пересоздал проект для Tiny2313. Код программы прикладываю. При симуляции в EEPROM не записываются таблицы. Компилируется проэкт, а EEPROM остается без изменения.
Вложения
Kod.asm
(18.27 КБ) 524 скачивания
Аватара пользователя
sergeys
Поставщик валерьянки для Кота
Сообщения: 1946
Зарегистрирован: Сб сен 11, 2010 13:45:01
Откуда: Екатеринбург

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

Сообщение sergeys »

Привет! У мну опять есть вопрос! Вот он: можно ли добавить в АВРстудию другие МК (у мну нет даже тини2313)? Какие-то библиотеки скачать?
Ко мне можно на "ты", так даже лучше!
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

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

Сообщение Gudd-Head »

sergeys писал(а):Привет! У мну опять есть вопрос! Вот он: можно ли добавить в АВРстудию другие МК (у мну нет даже тини2313)? Какие-то библиотеки скачать?

Программу обновить =)
Какая у вас версия?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
sergeys
Поставщик валерьянки для Кота
Сообщения: 1946
Зарегистрирован: Сб сен 11, 2010 13:45:01
Откуда: Екатеринбург

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

Сообщение sergeys »

4.1.0.127
Ко мне можно на "ты", так даже лучше!
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

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

Сообщение Gudd-Head »

sergeys писал(а):4.1

У меня 4.18 :)
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Ответить

Вернуться в «AVR»