Мелкие вопросы по МК и ПЛИС.
Спрошу еще вот что. Таймер в AVR настроен на 1800Hz, таймер 8-бит, то прерывание по переполнению произойдет когда будет достигнуто 255 в счетном регистре, следовательно 1800 / 256 = 7,031... Это значит будет 7 прерываний в секунду, я прав? А как сделать чтоб в секунду происходило одно прерывание (нужно для таймера). Хотелось бы посмотреть как это делается на С, а то все на "асм".
Немного нервов и девайс готов
- Реклама
насчет 7 раз в сек так и будет, ну примерно.
раз в сек, можно организовать по-разному.
использовать Т1 в асинхронном режиме с кварцем 32768Гц, на Т0,Т2 считать кол-во переполнений, подобрав удобный коэф.пересчета/деления, и в нужный момент что-то делать
раз в сек, можно организовать по-разному.
использовать Т1 в асинхронном режиме с кварцем 32768Гц, на Т0,Т2 считать кол-во переполнений, подобрав удобный коэф.пересчета/деления, и в нужный момент что-то делать
- Сообщения: 24
- Зарегистрирован: Пн сен 07, 2009 18:49:16
- Сообщения: 1148
- Зарегистрирован: Вт июл 08, 2008 12:24:17
Питание на карту подать через любой стабилизатор на 3.3В, для простоты м. взять интегральный маломощный; а согласование уровней - либо через резисторы (самый простой в реализации, но самый "непарламентский" способ; Ом, этак, трехсот достаточно, если я правильно помню), в некоторых случаях к резисторам добавляют стабилитроны на 3.3В; либо выбрать что-то подходящее отсюда.
Но я предпочитаю питать м/к от 3.3 - это и проще, и надежнее, и дешевле одновременно; если конечно м/к на такое способен.
Но я предпочитаю питать м/к от 3.3 - это и проще, и надежнее, и дешевле одновременно; если конечно м/к на такое способен.
все современные AVRки способны работать, без снижения частоты, при Vcc до 2.7В, а низковольтного исполнения до 1.8ВYellow Tiger писал(а):... если конечно м/к на такое способен.
- Реклама
- Сообщения: 1148
- Зарегистрирован: Вт июл 08, 2008 12:24:17
- Сообщения: 24
- Зарегистрирован: Пн сен 07, 2009 18:49:16
1) Я не могу все запитывать 3,3В, т.к. есть другие устройства которые питаются только от 5В. SD-единственное устройство в моей системе которое требует 3,3 В.Питание на карту подать через любой стабилизатор на 3.3В, для простоты м. взять интегральный маломощный; а согласование уровней - либо через резисторы (самый простой в реализации, но самый "непарламентский" способ; Ом, этак, трехсот достаточно, если я правильно помню), в некоторых случаях к резисторам добавляют стабилитроны на 3.3В; либо выбрать что-то подходящее отсюда.
Но я предпочитаю питать м/к от 3.3 - это и проще, и надежнее, и дешевле одновременно; если конечно м/к на такое способен.
2)А просто резистор нельзя впаять?
3)А названия конкретных интегральных стабилизаторов можешь привести?
например
LD2979M33TR
LD2979M33TR
Как можно проверить состояние конкретного бита в переменной?
Я не Сашок!!!
Логическое И с константой. Что-нибудь вроде:sachok писал(а):Как можно проверить состояние конкретного бита в переменной?
Код: Выделить всё
lds R16, var
andi R16, 0x10
brne куда-то, если бит установлен
Збыл написать и пишу на Си. Щас буду пробовать с лог. "И"
Я не Сашок!!!
- Сообщения: 491
- Зарегистрирован: Вс янв 07, 2007 01:45:48
- Откуда: Российская Федерация, будь она неладна...
sbrc r16, 1 ;пропустить следующую команду, если бит 1 регистра r16 сброшен (Skip if Bit in Register is Cleared)
sbrs r16, 1 ;пропустить следующую команду, если бит 1 регистра r16 установлен (Skip if Bit in Register is Set)
sbrs r16, 1 ;пропустить следующую команду, если бит 1 регистра r16 установлен (Skip if Bit in Register is Set)
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Проблема решена! Вот как я это сделал: (может ещё кому то пригодится)
Код: Выделить всё
if (temp_2>max_2)
{
led_status|=0b00000010; //установка второго бита в "1" не трогая остальных битов
}
else
{
if ( ( (led_status & 0b00000010)>>1)==1) //провкрка состояния второго бита
{
led_status^=0b00000010; //установка второго бита в "0" не трогая остальных
}
}Я не Сашок!!!
- Сообщения: 459
- Зарегистрирован: Вс июн 01, 2008 12:16:38
а чем вас вариант сброса бита в 0 не устраиваетsachok писал(а):Вот как я это сделал: ...
Код: Выделить всё
led_status &=~(0b00000010);sachok, то, что вы сделали, не сбрасывает бит, а меняет его состояние на противоположное - по-моему, это две большие разницы 
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Посколько у меня это будет срабатывать только когда нужный бит "1" то инверсия мне тоже подойдет
но за совет СПАСИБО буду знать.
Я не Сашок!!!
- Сообщения: 24
- Зарегистрирован: Пн сен 07, 2009 18:49:16
У меня есть вопрос. По схеме сопряжения контроллера с картой памяти, которая приведена на
http://piclist.ru/S-64MMC-PIC-RUS/S-64MMC-PIC-RUS.html
видно, что используется делитель напряжения (резисторы по 3 и 1.8 кОм). Что меня настораживат - это отсутствие подтягивающих резисторов. Они что вообще не нужны??? В даташите они есть, правда у них вся схема питается от 3.3 вольт.....
http://piclist.ru/S-64MMC-PIC-RUS/S-64MMC-PIC-RUS.html
видно, что используется делитель напряжения (резисторы по 3 и 1.8 кОм). Что меня настораживат - это отсутствие подтягивающих резисторов. Они что вообще не нужны??? В даташите они есть, правда у них вся схема питается от 3.3 вольт.....
Делаю AVR910, но неоказалось резисторов на 100ом. Есть на 111, такой подойдёт?
- Вложения
-
- PROTTOSS AVR910 USB Programmer.pdf
- Схема
- (32.1 КБ) 397 скачиваний
Сендвич всегда падает хлебом вниз.
- Сообщения: 459
- Зарегистрирован: Вс июн 01, 2008 12:16:38



