Страница 68 из 628
Добавлено: Чт окт 08, 2009 11:53:52
Vergilium
Спрошу еще вот что. Таймер в AVR настроен на 1800Hz, таймер 8-бит, то прерывание по переполнению произойдет когда будет достигнуто 255 в счетном регистре, следовательно 1800 / 256 = 7,031... Это значит будет 7 прерываний в секунду, я прав? А как сделать чтоб в секунду происходило одно прерывание (нужно для таймера). Хотелось бы посмотреть как это делается на С, а то все на "асм".
Добавлено: Чт окт 08, 2009 13:56:38
GP1
насчет 7 раз в сек так и будет, ну примерно.
раз в сек, можно организовать по-разному.
использовать Т1 в асинхронном режиме с кварцем 32768Гц, на Т0,Т2 считать кол-во переполнений, подобрав удобный коэф.пересчета/деления, и в нужный момент что-то делать
Добавлено: Пт окт 09, 2009 18:15:30
dymon
Мне нужно подрубить MMC/SD карту к контроллеру. Контроллер питается от 5В, а карта памяти от 3,3В. Т.к. из меня электрик плохой, подскажите плиз как с 5 до 3,3 сбавить напряжение и подать на MMC/SD. Схемку подпросте если можете.
Добавлено: Пт окт 09, 2009 18:39:40
Yellow Tiger
Питание на карту подать через любой стабилизатор на 3.3В, для простоты м. взять интегральный маломощный; а согласование уровней - либо через резисторы (самый простой в реализации, но самый "непарламентский" способ; Ом, этак, трехсот достаточно, если я правильно помню), в некоторых случаях к резисторам добавляют стабилитроны на 3.3В; либо выбрать что-то подходящее
отсюда.
Но я предпочитаю питать м/к от 3.3 - это и проще, и надежнее, и дешевле одновременно; если конечно м/к на такое способен.
Добавлено: Пт окт 09, 2009 18:45:58
GP1
Yellow Tiger писал(а):... если конечно м/к на такое способен.
все современные AVRки способны работать, без снижения частоты, при Vcc до 2.7В, а низковольтного исполнения до 1.8В
Добавлено: Пт окт 09, 2009 19:32:20
Yellow Tiger
GP1 писал(а):все современные AVRки способны ...
А он ничего про AVR'ки не говорил, или мой браузер что-то от меня скрывает...?
Добавлено: Пт окт 09, 2009 19:37:38
dymon
Питание на карту подать через любой стабилизатор на 3.3В, для простоты м. взять интегральный маломощный; а согласование уровней - либо через резисторы (самый простой в реализации, но самый "непарламентский" способ; Ом, этак, трехсот достаточно, если я правильно помню), в некоторых случаях к резисторам добавляют стабилитроны на 3.3В; либо выбрать что-то подходящее отсюда.
Но я предпочитаю питать м/к от 3.3 - это и проще, и надежнее, и дешевле одновременно; если конечно м/к на такое способен.
1) Я не могу все запитывать 3,3В, т.к. есть другие устройства которые питаются только от 5В. SD-единственное устройство в моей системе которое требует 3,3 В.
2)А просто резистор нельзя впаять?
3)А названия конкретных интегральных стабилизаторов можешь привести?
Добавлено: Пт окт 09, 2009 20:03:51
Yellow Tiger
2) - если требований по надежности особых нет, то можно.
3) - ищи сразу в магазинах, например
так...
Добавлено: Пт окт 09, 2009 20:09:11
GP1
например
LD2979M33TR
Добавлено: Сб окт 10, 2009 10:33:13
sachok
Как можно проверить состояние конкретного бита в переменной?
Добавлено: Сб окт 10, 2009 10:55:22
SII
sachok писал(а):Как можно проверить состояние конкретного бита в переменной?
Логическое И с константой. Что-нибудь вроде:
Код: Выделить всё
lds R16, var
andi R16, 0x10
brne куда-то, если бит установлен
Добавлено: Сб окт 10, 2009 11:01:27
sachok
Збыл написать и пишу на Си. Щас буду пробовать с лог. "И"
Добавлено: Сб окт 10, 2009 11:03:38
Pooher
sbrc r16, 1 ;пропустить следующую команду, если бит 1 регистра r16 сброшен (Skip if Bit in Register is Cleared)
sbrs r16, 1 ;пропустить следующую команду, если бит 1 регистра r16 установлен (Skip if Bit in Register is Set)
Добавлено: Сб окт 10, 2009 16:11:20
sachok
Проблема решена! Вот как я это сделал: (может ещё кому то пригодится)
Код: Выделить всё
if (temp_2>max_2)
{
led_status|=0b00000010; //установка второго бита в "1" не трогая остальных битов
}
else
{
if ( ( (led_status & 0b00000010)>>1)==1) //провкрка состояния второго бита
{
led_status^=0b00000010; //установка второго бита в "0" не трогая остальных
}
}
Добавлено: Сб окт 10, 2009 23:53:36
smac
sachok писал(а):Вот как я это сделал: ...
а чем вас вариант сброса бита в 0 не устраивает
Добавлено: Вс окт 11, 2009 12:13:15
ARV
sachok, то, что вы сделали, не
сбрасывает бит, а меняет
его состояние на противоположное - по-моему, это две большие разницы

Добавлено: Вс окт 11, 2009 16:01:09
sachok
Посколько у меня это будет срабатывать только когда нужный бит "1" то инверсия мне тоже подойдет

но за совет СПАСИБО буду знать.
Добавлено: Пн окт 12, 2009 20:44:20
dymon
У меня есть вопрос. По схеме сопряжения контроллера с картой памяти, которая приведена на
http://piclist.ru/S-64MMC-PIC-RUS/S-64MMC-PIC-RUS.html
видно, что используется делитель напряжения (резисторы по 3 и 1.8 кОм). Что меня настораживат - это отсутствие подтягивающих резисторов. Они что вообще не нужны??? В даташите они есть, правда у них вся схема питается от 3.3 вольт.....
Добавлено: Вт окт 13, 2009 16:07:49
Kots
Делаю AVR910, но неоказалось резисторов на 100ом. Есть на 111, такой подойдёт?
Добавлено: Вт окт 13, 2009 16:58:45
smac
Kots писал(а):Делаю AVR910, но неоказалось резисторов на 100ом. Есть на 111, такой подойдёт?
Число 111 - это Вы на корпусе SMD резистора прочитали? Если да, то это не 111 Ом, а 110. В любом случае, и 110 и 111 Ом подойдет.