Мелкие вопросы по МК и ПЛИС.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
zip900
Открыл глаза
Сообщения: 61
Зарегистрирован: Вт мар 01, 2011 13:51:57

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение zip900 »

Мне просто для индикации надо
Аватара пользователя
Furcat
Опытный кот
Сообщения: 833
Зарегистрирован: Ср май 02, 2007 14:36:29
Откуда: Плюк

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Furcat »

Подскажете плиз !
над мегой 8 колдую.
в общем примерно так:

int main(void){
unsigned char SCR[3] = {1, 2, 3}; // Ýêðàííàÿ îáëàñòü
.......
}

ISR(TIMER0_OVF_vect){
PORTB = SCR[1];
......
}

Короче авр студио ругается что массив в прерывании недоступен, что делать ?
а массив надо обновлять в main, и в прерывании выводить на индикатор...
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Kavka »

Вынесите объявление массива за пределы main. Он у вас локальный в main, сделайте его глобальным.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
ut1wpr
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ut1wpr »

Furcat писал(а):Подскажете плиз !
над мегой 8 колдую.
Оставьте Мегу в покое, она не виновата. Начинайте колдовать над Си.
Помогут:
Гугл: "Видимость переменных"
Гугл: "Области видимости переменных"
Но это называется "Изучать по кусочкам". Учебник по Си читать не пробовали?
С уважением,
Виктор.
Аватара пользователя
ILYAUL
Держит паяльник хвостом
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ILYAUL »

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

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение vitalik_1984 »

У этого камня пока нет главного качества - доступность. Нигде в магазинах не найти, а заказывать 10000 с завода как то дороговасто. Даже давно выпускаемые AtMega88 у нас в магазине еще не продаются.
И на E-Bay еще тоже не продают вашу тину.
В поисках истины человек развивается.
DrHlus
Встал на лапы
Сообщения: 119
Зарегистрирован: Чт май 10, 2012 21:56:27
Откуда: Львов

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение DrHlus »

Здраствуйте, уважаемые Коты! :))
Подскажите, пожалуйста, можно ли компилятору сишки в WinAvr запретить использовать определенный регистр общего назначения и, если можно, то как это сделать?
П.С. Упс, прошу прощения, промахнулся вкладкай браузера и написал не в подходящей теме :))
Но все равно буду рад услышать ответ
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение vitalik_1984 »

Нет, регистры общего назначения компилятор определяет сам, для этого при включении кусочков на ассемблере используется специальный синтаксис.
Вы можете использовать конкретный регистр только если подключаете целый модуль, написанный на чистом ассемблере.

PS А зачем запрещать компилятору использовать определенный регистр?
Последний раз редактировалось vitalik_1984 Ср авг 15, 2012 20:17:14, всего редактировалось 1 раз.
В поисках истины человек развивается.
Совесть
Встал на лапы
Сообщения: 106
Зарегистрирован: Пн мар 26, 2012 05:25:06

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Совесть »

А вот что говорит нам по этому поводу avr-lib-user-manual:
10.7 Locking Registers
The IAR compiler allows a user to lock general registers from r15 and down by using
compiler options and this keyword syntax:

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

__regvar __no_init volatile unsigned int filteredTimeSinceCommutation @14;
This line locks r14 for use only when explicitly referenced in your code thorugh the var
name "filteredTimeSinceCommutation". This means that the compiler cannot dispose
of it at its own will.

To do this in AVR GCC, do this:

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

register unsigned char counter asm("r3");
Typically, it should be possible to use r2 through r15 that way.

Note:
Do not reserve r0 or r1 as these are used internally by the compiler for a temporary
register and for a zero value.
Locking registers is not recommended in AVR GCC as it removes this register
from the control of the compiler, which may make code generation worse. Use at
your own risk.
Аватара пользователя
isx
Поставщик валерьянки для Кота
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение isx »

Добрый день!!
Собрал тут на днях устройство. Одна из его функций - считывание количества оборотов двигателя с помощью датчика Холла (tle4905l). Так вот проблема в том, что он успевает считать только 1 об/сек, а нужно около 15. Не могу понять, почему так медленно считывает инфу с датчика, ведь прога написана на 30-ти строках примерно, а тактирование идёт от ВНУТРЕННЕГО резонатора на 8МГц. Подскажите пожалёста, в чём может быть дело... :solder:
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20091
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Мелкие вопросы по МК и ПЛИС.

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

Значит, в сторону схемы надо копать. Или алгоритма.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
DrHlus
Встал на лапы
Сообщения: 119
Зарегистрирован: Чт май 10, 2012 21:56:27
Откуда: Львов

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение DrHlus »

vitalik_1984 писал(а):Нет, регистры нашего назначения компилятор определяет сам, для этого при включении кусочков на ассемблере используется специальный синтаксис.
Вы можете использовать конкретный регистр только если подключаете целый модуль, написанный на чистом ассемблере.

Спасибо за информативный ответ. Очень помогли :))
И челу Совесть тоже, просто мне приблуда вчера пришла в голову, что нужно сделать только так, и никак по-другому. Поэтому обойдусь более традиционными методами
Аватара пользователя
isx
Поставщик валерьянки для Кота
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение isx »

Схема до безобразия проста - датчик, питание, дисплей и матрица кнопок 4х4. В тот момент, когда датчик производит считывание вращений, матрица отключается.
Пока настораживают два момента:
1) Работа внутреннего резонатора не может притупить опрос портов МК?
2) При каждом обороте двигателя, на дисплей выводится информация о количестве совершённых оборотов. Я знаю, что дисплей хорошо затупляет работу МК, может пока МК отправляет данные на дисплей, происходит "пролёт" показаний датчика?
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20091
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Мелкие вопросы по МК и ПЛИС.

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

isx писал(а):2) При каждом обороте двигателя, на дисплей выводится информация о количестве совершённых оборотов.

это как, 15 раз в секунду что ли?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
isx
Поставщик валерьянки для Кота
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение isx »

Теоретически должно было так быть, но на практике всё пролетает. Он не может с такой частотой обновлятся? Если нет, то какая предельная частота обновления (дисплей WH1602b)?
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20091
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Мелкие вопросы по МК и ПЛИС.

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

Видимо, вы использовали чью-то библиотеку для работы с дисплеем? Тогда ХЗ как там сделано. А тайминги самого дисплея есть в ДШ.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6307
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Jack_A »

isx писал(а):Теоретически должно было так быть, но на практике всё пролетает. Он не может с такой частотой обновлятся? Если нет, то какая предельная частота обновления (дисплей WH1602b)?


Если бы даже и мог, то это бессмысленно : такую частоту обновления человек не в состоянии воспринять глазом и осмыслить. Пять раз в секунду - и то много. Оптимально - 2 .
Аватара пользователя
isx
Поставщик валерьянки для Кота
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение isx »

Осмысливать тут и не обязательно. Эта информация чисто для восприятия (показывает, что счёт таки идёт :) ). Чтобы уменьшать частоту, нужно будет делать ещё алгоритм. а я не хотел загромождать память, её мне много нужно будет в дальнейшем. Библиотека стандартная CVAVR-овская...
Аватара пользователя
isx
Поставщик валерьянки для Кота
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение isx »

интересная штука.... Убрал строку инициализации дисплея, и стало всё норм... Теперь сотку в секунду свободно считает...
ut1wpr
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ut1wpr »

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

Вернуться в «Разные вопросы по МК»