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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

Поздравляю, avreal , ваше сообщение номером 666 :idea: и как раз какие то заклинания в коде :)))
В поисках истины человек развивается.
Аватара пользователя
CyberVad
Встал на лапы
Сообщения: 142
Зарегистрирован: Сб дек 24, 2011 12:39:03

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

Сообщение CyberVad »

avreal спасибо!
Скачал pin_macros.h, подключил, попробовал вставить пару строк из Вашего примера - не ругается )))
ON(LED_YEL); - это как раз то что я и хотел. Я в неявном виде писал что на авр-ассемблере не писал, а писал для MCS-51. Я сейчас в командировке, тех программ под рукой нет, но (по памяти) выглядело примерно так:
назначаем такому-то пину такого порта имя, например LED_YEL и далее setb LED_YEL или clr LED_YEL. Может я что-то не совсем так пишу, давно не писал в нём, но смысл такой.
По-моему как-то красивее того, что не нравится мне.
Спасибо всем. :music: Я удовлетворён, пойду понюхаю валерьянки :beer:
ЗЫ Кто-то может иронизировать по поводу размера моих программ, но, я считаю, несколько тысяч строк а ассемблере - не так и мало.
Вышел из себя.
Пришел в себя.
Ушел в себя.
И решил больше сегодня никуда не ходить
mastech
Грызет канифоль
Сообщения: 269
Зарегистрирован: Чт мар 11, 2010 17:45:37
Откуда: г.фрязино

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

Сообщение mastech »

решил поковырять проект вольтметра на дисплее о нокии1202 http://we.easyelectronics.ru/letni/esch ... -dnya.html

но не могу скомпилировать проект выдает ошибку:
C:\lcd1\default/../lcd1.c:32: undefined reference to `lcd_ledon'
C:\lcd1\default/../lcd1.c:33: undefined reference to `lcd_init'
и т.д. типа либу lcd1202.h вроде как не видит о в проект она вставлена.
Изображение
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

Это что за картинка?Перезалейте, сжатие не удалось.Ничего не видно.
Может нужно вместо

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

# include < lcd1202.h>  

написать

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

# include  "lcd1202.h"  
???
В поисках истины человек развивается.
mastech
Грызет канифоль
Сообщения: 269
Зарегистрирован: Чт мар 11, 2010 17:45:37
Откуда: г.фрязино

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

Сообщение mastech »

кавычки впервую очередь менял не помогло

фотка нормально открывается на ней скрин студии

перезалил
Изображение
Последний раз редактировалось mastech Пн авг 20, 2012 13:23:05, всего редактировалось 1 раз.
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

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

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

СпойлерИзображение
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
U235
Встал на лапы
Сообщения: 135
Зарегистрирован: Вт фев 21, 2012 20:42:26
Откуда: Санкт-Петербург, Россия, Земля

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

Сообщение U235 »

mastech писал(а):...не могу скомпилировать проект выдает ошибку:
C:\lcd1\default/../lcd1.c:32: undefined reference to `lcd_ledon'
C:\lcd1\default/../lcd1.c:33: undefined reference to `lcd_init'
и т.д. типа либу lcd1202.h вроде как не видит о в проект она вставлена.

Это сообщение о ошибке не компиляции, а сборки программы. То есть Вы подключили к проекту lcd1202.h с объявлениями функций, а lcd1202.c, где эти функции реализованы, не подключили. Вот компилятор и не знает где их взять.
А из наших труб идет необычный дым. Стой! Опасная зона! Работа мозга!...
mastech
Грызет канифоль
Сообщения: 269
Зарегистрирован: Чт мар 11, 2010 17:45:37
Откуда: г.фрязино

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

Сообщение mastech »

хм но lcd1202.c находится в одной паке с lcd1202.h и как ее подключать, она разве не автоматом находится?
е
прикрутил ее как #include "lcd/lcd1202.c" вроде пошло но теперь ругается на задержки

c:\program files\atmel\avr tools\avr toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay.h:152:28: error: __builtin_avr_delay_cycles expects an integer constant.

Изображение
Последний раз редактировалось mastech Пн авг 20, 2012 14:05:36, всего редактировалось 1 раз.
Аватара пользователя
U235
Встал на лапы
Сообщения: 135
Зарегистрирован: Вт фев 21, 2012 20:42:26
Откуда: Санкт-Петербург, Россия, Земля

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

Сообщение U235 »

mastech писал(а):как ее подключать, она разве не автоматом находится?

Нет, автоматом оно не подключается. В левом окне студии (AVR GCC) на папке "source files" щёлкаете левой кнопкой мышки. В появившемся меню выбираете "add file". Откроется окошко "выбор файла", в нём нажимаете на нужный файл.
А из наших труб идет необычный дым. Стой! Опасная зона! Работа мозга!...
mastech
Грызет канифоль
Сообщения: 269
Зарегистрирован: Чт мар 11, 2010 17:45:37
Откуда: г.фрязино

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

Сообщение mastech »

поправил ка Вы подсказали стало норм, только ошибка с задержками не ушла
Аватара пользователя
U235
Встал на лапы
Сообщения: 135
Зарегистрирован: Вт фев 21, 2012 20:42:26
Откуда: Санкт-Петербург, Россия, Земля

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

Сообщение U235 »

Оно и будет ругаться. Задежка используется не правильно. В файле lcd1202.c надо заменить все вызовы lcd_delay_ms на _delay_ms. И удалить саму функцию lcd_delay_ms вместе с её объявлением.
Примерно так:
Спойлер

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

#include "lcd1202.h"
#include "font.h"
//#include "fnt_libera_24x14.xbm"
// #include "fnt_terminus_24x14.xbm"

void lcd_init_gpio(void);
void lcd_reset(void);
void lcd_write_byte(unsigned char data, unsigned char rc);

static void lcd_set_row(unsigned char row);
static void lcd_set_col(unsigned char col);

struct {
    int inverse:1;
} flags;


/* hw undepended functions */

void lcd_init(void)
{
    lcd_init_gpio();
    lcd_reset();

   lcd_write_byte(0xE2, 0); // Reset
    _delay_ms(10);
   lcd_write_byte(0xA4, 0); // Power saver off
   lcd_write_byte(0x2F, 0); // Power control set
   lcd_write_byte(0xAF, 0); // LCD display on

    lcd_clr();

    flags.inverse = 0;
}

void lcd_clr(void)
{
    int i;
    lcd_home();
    for(i=0; i<16*6*9; i++)
    {
        lcd_write_byte(0x00, 1);
    }
}
/*
void lcd_big_char(unsigned char row, unsigned char col, unsigned char chr)
{
    // unsigned char* f0 = fnt_terminus_24x14_bits + chr*14*(24/8);
    unsigned char* f0 = fnt_libera_24x14_bits + chr*14*(24/8);
    unsigned char* f;
    unsigned char r, c;
   unsigned char ch;
   
    for(r = 0; r<3; r++)
    {
        f = f0 + r;
        lcd_set_row(row+r);
        lcd_set_col(col);
        for(c = 0; c<14; c++)
        {
            ch = *f;
            if(flags.inverse) ch = ch ^ 0xFF;
            lcd_write_byte(ch, 1);
            f += 3;
        }
    }
}
*/
void lcd_pos(unsigned char row, unsigned char col)
{
    lcd_set_row(row);
    lcd_set_col(col*6);
}

void lcd_char(unsigned char c)
{
   unsigned char line;
   unsigned char ch;

    unsigned char* f = &(font6_8[c-32]);

   for(line=0;line<6;line++)
   {
      ch = *f++;
        if(flags.inverse) ch = ch ^ 0xFF;
      lcd_write_byte(ch, 1);
   }
}

void lcd_str(unsigned char* str)
{
    unsigned char c;
    while((c = *str) != 0)
    {
        lcd_char(c);
        str++;
    }
}

void lcd_inverse(char flag)
{
    flags.inverse = flag;
}

void lcd_reverse(unsigned char inv)
{
    if(inv)
        lcd_write_byte(0xA7, 0); // reverse display
    else
        lcd_write_byte(0xA6, 0); // normal display
}

void lcd_start_line(unsigned char line)
{
    lcd_write_byte(0x40 | (line & 0x3F), 0);
}

void lcd_home(void)
{
   lcd_write_byte(0xB0, 0); // Page address set
    lcd_write_byte(0x10, 0); // Sets the DDRAM column address - upper 3-bit
    lcd_write_byte(0x00, 0); // lower 4-bit
}

static void lcd_set_row(unsigned char row)
{
   lcd_write_byte(0xB0 | (row & 0x0F), 0); // Page address set
}

static void lcd_set_col(unsigned char col)
{
    lcd_write_byte(0x10 | (col>>4), 0); // Sets the DDRAM column address - upper 3-bit
    lcd_write_byte(0x00 | (col & 0x0F), 0); // lower 4-bit
}

/* MCU Hardware depend functions */
/* Atmega8 */


#define lcd_port PORTD

#define lcd_sclk 2
#define lcd_sda 3
#define lcd_nrst 5
#define lcd_ncs 4
#define lcd_led 6

#define lcd_rst_mark() lcd_port&=~(1<<lcd_nrst)
#define lcd_rst_release() lcd_port|=(1<<lcd_nrst)

#define lcd_cs_mark() lcd_port&=~(1<<lcd_ncs)
#define lcd_cs_release() lcd_port|=(1<<lcd_ncs)


void lcd_ledon(void)
{
lcd_port|=(1<<lcd_led);
}

void lcd_ledoff(void)
{
lcd_port&=~(1<<lcd_led);
}


void lcd_init_gpio(void)
{
DDRD|=(1<<lcd_sclk)|(1<<lcd_sda)|(1<<lcd_nrst)|(1<<lcd_ncs)|(1<<lcd_led);
lcd_port|=(1<<lcd_ncs)|(1<<lcd_nrst);
_delay_ms(10);
}

void lcd_reset(void)
{
    lcd_rst_mark();
    _delay_ms(10);
    lcd_rst_release();
    _delay_ms(10);
}

void lcd_write_byte(unsigned char data, unsigned char rc)
{
    lcd_cs_mark();

    if(rc) lcd_port|=(1<<lcd_sda);
      else lcd_port&=~(1<<lcd_sda);
   
   lcd_port|=(1<<lcd_sclk);
   _delay_us(10);
    lcd_port&=~(1<<lcd_sclk);
   _delay_us(10);
   
    int i;
    for(i=0; i<8; i++)
    {
        if(data & 0x80) lcd_port|=(1<<lcd_sda);
         else lcd_port&=~(1<<lcd_sda);
       
      data <<= 1;
      
      lcd_port|=(1<<lcd_sclk);
      _delay_us(10);
      lcd_port&=~(1<<lcd_sclk);
      _delay_us(10);
    }
    lcd_cs_release();
}


А из наших труб идет необычный дым. Стой! Опасная зона! Работа мозга!...
mastech
Грызет канифоль
Сообщения: 269
Зарегистрирован: Чт мар 11, 2010 17:45:37
Откуда: г.фрязино

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

Сообщение mastech »

убрал lcd с задержек все скомпилировалось,приеду с работы опробую. преогромнейшее спасибо). вот только вопрос как так получилось с задержками или это умышленно сделано?
Аватара пользователя
U235
Встал на лапы
Сообщения: 135
Зарегистрирован: Вт фев 21, 2012 20:42:26
Откуда: Санкт-Петербург, Россия, Земля

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

Сообщение U235 »

Пожалуста :))
С задержками скорее всего из-за невнимательности. У меня такое частенько бывает)
А из наших труб идет необычный дым. Стой! Опасная зона! Работа мозга!...
Serdgi
Нашел транзистор. Понюхал.
Сообщения: 166
Зарегистрирован: Чт июн 02, 2011 10:32:56

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

Сообщение Serdgi »

Подскажите пожалуйста,какие галочки поставить и какие убрать в AVR Studio V4.13
Буржуин выложил вот эти,но не все понятно в версии 4,13

The fuse settings for the ATTINY45 were as follows (for AVR STUDIO):
BODLEVEL 2.7V
EESAVE not preserved
WDTON disabled
SPIEN enabled
DWEN enabled
RSTDISBL enabled
-> which equals 0xdd
CKSEL hf pll (0001)
SUT 1..0 bod enabled fast rise
CKOUT disabled
CKDIV8 disabled
-> which equals 0xe1
(this was taken from the EasyLogger data files)

ссылка на девайс.
(http://yveslebrac.blogspot.com/2008/10/ ... alaxy.html)
Вложения
фьюз.JPG
Фьюзы
(63.71 КБ) 790 скачиваний
pokk
Вымогатель припоя
Сообщения: 574
Зарегистрирован: Вт ноя 02, 2010 17:46:37

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

Сообщение pokk »

Подскажите пытаюсь соединить avr studio c протеусом студия при компиляции выдаёт ошибку
Proteus: Failed to create VSM Debugger object
Coordinator: Error when writing memory contents to the debug platform.
Coordinator: Error loading object file.

уже раза 3 переустановил протеус (он там вылетал иногда думал в этом косяк а оказалось нет)
версия студии 4.13 протеуса 7.10
geodx
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Вт дек 20, 2011 21:40:45

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

Сообщение geodx »

Здравствуйте уважаемые радиокоты! Подскажите пожалуйста.

Симулирую таймер на AVR Studio. Симулирует нормально, но когда начинается заполнение счетного регистра, симулятор почему-то через такт перескакивает.
Естественно это неудобно: не видно например, как флаг переполнения счетчика выставляется, т к симулятор перескакивает этот момент своими двойными тактированиями.

Пишу на С++, отлаживаю в окошке "дизассемблер".

Может там галочку какую-нибудь в настройках поставить надо, мол не перескакивать через такт при трассировке? Где поменять настройки, чтобы программа нормально, такт за тактом выполнялась?

Спасибо!
Аватара пользователя
murashh
Открыл глаза
Сообщения: 44
Зарегистрирован: Пт апр 04, 2008 22:51:33

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

Сообщение murashh »

Подскажите пожалуйста.

Перешел с WinAVR на AVRStudio5, все хорошо, кроме момента прошивки fuses. Я обычно прошивал USB-asp теперь шью с AVRDragon, программа одна и таrже прошивается нормально, все отлично, но как только прошиваю fuses через AVRDragon на AVRStudio5, контроллер больше не доступен, т.е. не могу прошить и даже прочитать, при этом контроллер работает., выполняет вшитую программу.

Вопрос такой, в чем может быть моя ошибка? Повторюсь одно и тоже устройство через USB-asp и eXtremeBurnerAVR прошивается полностью с fuses нормально, а через AVRDragon и AVRStudio5, прошивается только прога.

Кто использует связку AVRDragon и AVRStudio5 пожалуйста поделитесь положительным опытом.
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

есть опыт, но в плане программирования старых девайсов типа мега8 он отрицательный Шью 4той студией.

PS выпущена шестая версия и лучше переходить на нее, так как новых пятых уже не будет.хотя для кода я успешно использую пятую-она запускается быстрее.
И вообще для пятой студии в коте есть отдельная ветка.
Аватара пользователя
murashh
Открыл глаза
Сообщения: 44
Зарегистрирован: Пт апр 04, 2008 22:51:33

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

Сообщение murashh »

Проблема не решена. Тема под avrStudio 5 не найдена
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

Пятая студия
А что вам мешает использовать старую методику программирования?Просто в пятой нет поддержки некоторых контроллеров.
Ответить

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