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

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

Сообщение Kavka »

Gudd-Head писал(а):Чтение-запись вряд ли, а вот обмен данными можно. С ноги MISO контроллера можно поробовать.
Думаю, что при том протоколе обмена, который там используется, будут, что MISO, что MOSI светиться не в попад. :)

zip900, только на принтерный порт на прямую светодиоды вешать не надо - рискуете сжечь порт. Через любой буфер - 74HC244, 74HC04, 74HC14 ...
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Реклама
Друг Кота
Аватара пользователя
Сообщения: 20141
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

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

MISO я имел в виду в первой схеме чтобы порт не пожечь. А так, наверное, на SCK хорошо бы.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Мудрый кот
Аватара пользователя
Сообщения: 1815
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Сообщение Kavka »

MISO - хитро! Я даже сразу и не просёк всю глубину замысла. :))
Последний раз редактировалось Kavka Ср авг 08, 2012 12:25:55, всего редактировалось 1 раз.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Друг Кота
Аватара пользователя
Сообщения: 20141
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

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

Да-да-да (читаем вторую строчку подписи) :)
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Эиком - электронные компоненты и радиодетали
Открыл глаза
Аватара пользователя
Сообщения: 61
Зарегистрирован: Вт мар 01, 2011 13:51:57

Сообщение zip900 »

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

Сообщение Furcat »

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

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

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

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

Сообщение Kavka »

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

Сообщение ut1wpr »

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

Сообщение ILYAUL »

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

Сообщение vitalik_1984 »

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

Сообщение DrHlus »

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

Сообщение vitalik_1984 »

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

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

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

А вот что говорит нам по этому поводу 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

Сообщение isx »

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

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

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

Сообщение DrHlus »

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

Сообщение isx »

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

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

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

Сообщение isx »

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

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

Видимо, вы использовали чью-то библиотеку для работы с дисплеем? Тогда ХЗ как там сделано. А тайминги самого дисплея есть в ДШ.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Ответить

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