Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Proteus VSM for AVR
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
*SERG
На сайте производителя увидел вот такую прогу http://www.labcenter.co.uk/index.html?/products/avr.htm
Очень хотелось бы посмотреть поближе, но не могу понять как взять sad.gif . Может есть у кого?Или подскажите каким образом её скачать от туда
Tigrik
Цитата(*SERG @ Feb 14 2007, 09:19) *
На сайте производителя увидел вот такую прогу http://www.labcenter.co.uk/index.html?/products/avr.htm
Очень хотелось бы посмотреть поближе, но не могу понять как взять sad.gif . Может есть у кого?Или подскажите каким образом её скачать от туда


Лежит Ваша дорога в раздел сайта для своих.
*SERG
Спасибо, скачал, сначало не заметил)
Tigrik
Цитата(*SERG @ Feb 15 2007, 08:42) *
Спасибо, скачал, сначало не заметил)


Как работает? У меня последняя версия валится с периодичностью 10-15-20 минут... Особенно когда симуляцию второй раз включаешь после стопа sad.gif
Spider
Цитата(Tigrik @ Feb 15 2007, 17:36) *
Цитата(*SERG @ Feb 15 2007, 08:42) *

Спасибо, скачал, сначало не заметил)


Как работает? У меня последняя версия валится с периодичностью 10-15-20 минут... Особенно когда симуляцию второй раз включаешь после стопа sad.gif

У меня последний прот и работает как часы. Вот тока отладку не делает, читал выше, про некий патч, но вот проблема эти патчи в комплекте со всем Протом идут, а отдельно никто не угостит - трафик больно дорогой у меня.
*SERG
Да блин, тож как то не понятно работает. Пишу в квавр, подозрение на кофф фаил. Посмотрел примеры, там прога игра в шахматы написана на си но в ИАР похоже, т.к. фаил с иаровским расширением подключён. Всё чётко работает и в подпрограммы прыгает и вообще по строчкам при отладке ходит. А с кофами что то непонятное. Вот перехожу на иар потихоньку, всё равно когда то надо начинать). Посмотрю как с иаровским файлом заработает таже прога
Abakt
у вас 6.9 sp5 ?
Tigrik
Цитата(*SERG @ Feb 16 2007, 09:43) *
Да блин, тож как то не понятно работает. Пишу в квавр, подозрение на кофф фаил. ... А с кофами что то непонятное.


Скорми ему elf вместо cof'а... Заработает. Только проверь, чтоб в make-файле были полные пути прописаны до твоих *.c файлов, иначе исходников не найдет.

На cof'ами у меня тоже ничего не работало...

Цитата(*SERG @ Feb 16 2007, 09:43) *
Вот перехожу на иар потихоньку, всё равно когда то надо начинать). Посмотрю как с иаровским файлом заработает таже прога


Ну да... а потом дорастем до ARM'ов и будем потихоньку переползать обратно на GCC... smile.gif) А смысл? smile.gif)
Ладно... это уже из раздела "священных войн" - кому что больше нравится smile.gif

У меня в последнем проте другая проблема - сразу после инициализации UART1 в mega128 прога вешается, потому как постоянно срабатывают прерывания... При этом UART0 работает нормально :// Что-то подсказывает, что тут что-то связано с режимом совместимости 128-й меги со 103-ей... sad.gif В железе для этого нужно скинуть один Fuse... но как это сделать в проте - не нашел sad.gif Т.е. в свойствах элемента там есть некоторые fuse, но далеко не все sad.gif

Если кто знает как побороть UART1 в протеусовской меге - you are more than wellcome!
Spider
Цитата(Tigrik @ Feb 17 2007, 05:08) *
У меня в последнем проте другая проблема - сразу после инициализации UART1 в mega128 прога вешается, потому как постоянно срабатывают прерывания... При этом UART0 работает нормально :// Что-то подсказывает, что тут что-то связано с режимом совместимости 128-й меги со 103-ей... sad.gif В железе для этого нужно скинуть один Fuse... но как это сделать в проте - не нашел sad.gif Т.е. в свойствах элемента там есть некоторые fuse, но далеко не все sad.gif

Если кто знает как побороть UART1 в протеусовской меге - you are more than wellcome!


Код
UBRR1L = (SYSCLK / (BAUD*16L) - 1);
UCSR1B = _BV(RXEN1)|_BV(RXCIE1)|_BV(TXEN1);

void uart_put (uint8_t d)
{
    uint8_t i;

    i = txfifo.idx_w;
    while(txfifo.count >= sizeof(txfifo.buff));
    txfifo.buff[i++] = d;
    cli();
    txfifo.count++;
    UCSR1B = _BV(RXEN1)|_BV(RXCIE1)|_BV(TXEN1)|_BV(UDRIE1);
    sei();
    if(i >= sizeof(txfifo.buff))
        i = 0;
    txfifo.idx_w = i;
}

SIGNAL(SIG_UART1_DATA)
{
    uint8_t n, i;


    n = txfifo.count;
    if(n) {
        txfifo.count = --n;
        i = txfifo.idx_r;
        UDR1 = txfifo.buff[i++];
        if(i >= sizeof(txfifo.buff))
            i = 0;
        txfifo.idx_r = i;
    }
    if(n == 0)
        UCSR1B = _BV(RXEN1)|_BV(RXCIE1)|_BV(TXEN1);
}

Примерно так.
*SERG
Скорми ему elf вместо cof'а... Заработает. Только проверь, чтоб в make-файле были полные пути прописаны до твоих *.c файлов, иначе исходников не найдет.

На cof'ами у меня тоже ничего не работало...

Окей, поробую, спасибо


Ну да... а потом дорастем до ARM'ов и будем потихоньку переползать обратно на GCC... ) А смысл? )

В смысле. Я впринцепе взялся за иар потомучто и для 32 и для мсп оболочки есть, и для других контроллеров. Я так понимаю что иаровские оболочки примерно одинаковые и если разберёшся с одной (в данном случае с АВР, т.к. с ними в основном работаю), то потом без особых проблем можно будет писать в других оболочках и для других контьроллеров. Или я ошибаюсь?
*SERG
Программу вроде написал. Иар компелит без ошибок). Но не могу с протеусом подружить. В паке с протеусом есть файлы *.а90, *.с,*.в90, *.lst, *.map. Протеус не видит сошного кода, соответственно не могу отладить по шагам(. В чем проблемма, не могу понять. Помогитте?
Tigrik
Цитата(*SERG @ Feb 19 2007, 10:44) *
В паке с протеусом есть файлы *.а90, *.с,*.в90, *.lst, *.map.


1. А где elf? У меня по шагам получилось только когда скормил протеусу *.elf моего проекта.
2. Проект протеуса в том же каталоге что Си проект?
3. В make'е прописаны полные пути до *.c файлов?


Цитата(Alexey Belyaev @ Feb 17 2007, 08:43) *
Код
UBRR1L = (SYSCLK / (BAUD*16L) - 1);
UCSR1B = _BV(RXEN1)|_BV(RXCIE1)|_BV(TXEN1);

void uart_put (uint8_t d)
{
    uint8_t i;

    i = txfifo.idx_w;
    while(txfifo.count >= sizeof(txfifo.buff));
    txfifo.buff[i++] = d;
    cli();
    txfifo.count++;
    UCSR1B = _BV(RXEN1)|_BV(RXCIE1)|_BV(TXEN1)|_BV(UDRIE1);
    sei();
    if(i >= sizeof(txfifo.buff))
        i = 0;
    txfifo.idx_w = i;
}

SIGNAL(SIG_UART1_DATA)
{
    uint8_t n, i;


    n = txfifo.count;
    if(n) {
        txfifo.count = --n;
        i = txfifo.idx_r;
        UDR1 = txfifo.buff[i++];
        if(i >= sizeof(txfifo.buff))
            i = 0;
        txfifo.idx_r = i;
    }
    if(n == 0)
        UCSR1B = _BV(RXEN1)|_BV(RXCIE1)|_BV(TXEN1);
}

Примерно так.


На первый взгляд все очень похоже. Вечером проверю подробнее... Проблема что сразу после инициализации вываливается в обработку прерывания и больше оттудова не выходит ://
*SERG
Цитата(*SERG @ Feb 16 2007, 09:43) *
Да блин, тож как то не понятно работает. Пишу в квавр, подозрение на кофф фаил. Посмотрел примеры, там прога игра в шахматы написана на си но в ИАР похоже, т.к. фаил с иаровским расширением подключён. Всё чётко работает и в подпрограммы прыгает и вообще по строчкам при отладке ходит. А с кофами что то непонятное. Вот перехожу на иар потихоньку, всё равно когда то надо начинать). Посмотрю как с иаровским файлом заработает таже прога


C иаровскими файлами вроде дружит, по крайней мере луяше чем с квавр smile.gif
SergSit
Для того чтобы запустить отладку в Протеусе необходимо в IAre в качестве выходного формата в линкере установить формат UBROF8. Тогда протеус сам находит исходные файлы.
А cof формат для AVRов IAR не поддерживает. Покраймей мере у меня выдает ошибку при попытке выставить выходной формат coff.
Abakt
об этом написано в контекстной справке по кнопке в диалоге свойств МК.
Clone
Приветствую всех!
Выложите кто нибудь эту прогу, на ФТП не пускает а поюзать очень хочется.
Spider
на kazus.ru в форуме полно ссылок. Так же есть на [banned]
*SERG
С файлами генерированными в иар дружит замечательно, три проги уже откатал и всё ок!)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.