Перейти к содержанию

Вопросы от начинающих по МК


Рекомендуемые сообщения

А кто плюс через резистор 2-3кОм подавать на вывод РD0 будет? Там постоянно висит ноль!

Все можно наладить, если вертеть в руках достаточно долго!

Если ничто другое не помогает, прочтите, наконец, инструкцию!

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

  • Ответов
  • Создана
  • Последний ответ

Топ авторов темы

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Может и хватит. А где {else PORTB=0x00} ?

Изменено пользователем chip-chip

Все можно наладить, если вертеть в руках достаточно долго!

Если ничто другое не помогает, прочтите, наконец, инструкцию!

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

if (PIND0==0) в студии не проканает

напишите так if(PIND &=~ (1<<PD0))

и после того как в PORTB записано 0хFF и кнопка отпущена нужно в него записать 0х00

Изменено пользователем Viktor26

Не знаеш как? Спроси у Google'а !!!

Ссылка на комментарий
Поделиться на другие сайты

В качестве аналогового задающего устройства планирую применять переменные резисторы на 100 ком, как делитель напряжения в 5 вольт, подключаемые на аналоговые входа AVR. Чаще применяют порядка 10 ком. У меня не будет проблем? Типа - не хватает тока, входное сопротивление не обеспечивает, надо поменьше и т.п.??

Ссылка на комментарий
Поделиться на другие сайты

Можно и 100кОм. Если больше нечего поставить.

Все можно наладить, если вертеть в руках достаточно долго!

Если ничто другое не помогает, прочтите, наконец, инструкцию!

Ссылка на комментарий
Поделиться на другие сайты

Там входное сопротивление пару гигаом. Висящие в воздухе выводы прекрасно чувствуют электростатические заряды рядом со схемой. Главное не налажать - отключить на аналоговых входах функцию цифровых входов и отключить подтяжку на порту.

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

int knopka1 = rand() % 8;
PORTB |= (1 << knopka1);

Почему Протеус из восьми светодиодов, подключенных к ножкам порта B на Атмеге 8-ой, зажигает постоянно восьмую (то есть подает "1" на 7-ую ножку)??? Разве функция rand() не должна случайным образом выбрать число от 0 до 7 по этому коду??? Библиотеку stdlib добавил. Что я делаю не так? Нужно, чтобы переменная "knopka1" приняло случайное значение от 0 до 7, а она постоянно принимает значение 7 (то бишь зажигает 8-ую ногу порта B контроллера.

P.S. Заранее спасибо за помощь!!!

Ссылка на комментарий
Поделиться на другие сайты

int knopka1 = rand() % 8;
PORTB |= (1 << knopka1);

Почему Протеус из восьми светодиодов, подключенных к ножкам порта B на Атмеге 8-ой, зажигает постоянно восьмую (то есть подает "1" на 7-ую ножку)??? Разве функция rand() не должна случайным образом выбрать число от 0 до 7 по этому коду??? Библиотеку stdlib добавил. Что я делаю не так? Нужно, чтобы переменная "knopka1" приняло случайное значение от 0 до 7, а она постоянно принимает значение 7 (то бишь зажигает 8-ую ногу порта B контроллера.

P.S. Заранее спасибо за помощь!!!

Посмотрите , про особенность рандома в 6 студии

Ссылка на комментарий
Поделиться на другие сайты

Всем привет!Кто сможет переделать задержку на 20 минут и для pic12f675. http://m.habrahabr.ru/post/205484/

Мне otest переделал на pic12f675,но там задержка на 5 минут

Ссылка на комментарий
Поделиться на другие сайты

Вроде сделал, как на видео все равно не получается((

Вы не пропустили записать эти строчки в шапке ?

#define RAND_MAX 7
volatile unsigned int knopka1

Изменено пользователем DmitryS
Ссылка на комментарий
Поделиться на другие сайты

Вы не пропустили записать эти строчки в шапке ?

Нет, конечно. Константа Rand Max правда уже определена в stdlib и при указании ее максимального значения отличающегося от библиотечного эталона, Студия ругается на "redefine", как я понимаю за повторное установление этой константы. А второй строкой, как я понимаю, просто устанавливаешь тип переменной. Но не в этом суть. Все равно не работает. Тут раньше выкладывали примеры в другом разделе, где видео для начинающих лежит, так там везде примеры с использованием timeNull, я правда понятия не имею, как они оказались работоспособными, ибо в 6-ой Студии даже библиотеки такой нет. Вообще реально программно на микроконтроллере получить случайное число?

Изменено пользователем Elkatib
Ссылка на комментарий
Поделиться на другие сайты

Константа Rand Max правда уже определена в stdlib

Я тоже чайник в этом деле , но как может знать библиотека из какого диапазона чисел вам нужен рандом ?

Ссылка на комментарий
Поделиться на другие сайты

Нееее. Я не имел ввиду, что она знает мое максимальное значение. Оно уже указано в stdlib и равно 0x7FFF. Но изменить это значение не получается, вроде... Короче, вот такая ошибка вылетает.

Warning 1 "RAND_MAX" redefined [enabled by default]

Но и не в ней проблема, вообще функция rand() не пашет, как заставить ее работать не знаю. Самое интересное, что и random() не работает, а у нее вроде алгоритм другой.

Народ, ну подскажите, как Вы получаете случайные числа в Студии (версия: 6.2, SP1)?

Ссылка на комментарий
Поделиться на другие сайты

Попробуте , запустить тот поект про игральные кости , из видео , Там должны быть ссылки и на программу и , если кости будут работать , то у вас ошибка в коде , если не будут , тогда криво установилась студия

Ссылка на комментарий
Поделиться на другие сайты

Доброго времени суток! Есть код на С(как понял), как реализовать тоже самое на BASCOM AVR? МК Atmega8.

#define DTIME 1000000/100/256 //1000000 - число микросекунд в секунде, 100 - сетевая частота (Гц), 256 - разрядность счетчика.
#define OUT_ON() PORTD &=~(1<<4)
#define OUT_OFF() PORTD |= (1<<4)
...
while(1){ //бесконечный цикл
if(GIFR & (1<<INTF0)){ //если прерывание наступило (обработчик при этом, разумеется, не нужен)
 GIFG |= (1<<INTF0); //сбрасываем флаг
 OUT_ON();
 for(unsigned char i=0;i<time;i++)_delay_us(DTIME); //задержка
 OUT_OFF();
}
...
}

Ссылка на комментарий
Поделиться на другие сайты

Нет, прерываеие мне нужно, но не совсем по обычному. Что бы когда на INT0 значение 1, у нас выполнялся код, но в основном цикле. Как это сделать на баскоме не понимаю. Извинитее за глупые вопросы

if(GIFR & (1<<INTF0)){ //если прерывание наступило (обработчик при этом, разумеется, не нужен)
 GIFG |= (1<<INTF0); //сбрасываем флаг

Ссылка на комментарий
Поделиться на другие сайты

Не понимаю как использовать перывание без его обработчика

а оно и не используется... справочник молодых сурков гласит, что флаг события устанавливается вне зависимости от наличия/отсутствия прерывания и переход на обработчик прерывания происходит если оное(прерывание) разрешено
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...