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

Codevisionavr И Attiny 2313


stive6969

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

такая проблема. у attiny 2313 на выходах минус можно ли сменить на противоположное значение чтобы общий был минус а на микрухе плю!! заранее всем благодарен за помощь!!!

просто у меня сегментный индикатор и у него общий минус и с attiny выходит минус... пытаюсь управлять сегментами может где-то в мастере создания проектов можно выставить этот параметр????

наверное глупость спросил)))))

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

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

да, глупости еще какие)

первое- тини не может выдавать "-" она выдает или НОЛЬ или +5В.

чтобы общий был минус а на микрухе плю!!

дык именно так и есть.

для кодевижина напишите вот такое (где то в мейне):

DDRB.0=1; //назначить линию на выход

PORTB.0=1; //подать +5В на этот выход

а затем подключите сегмент индикатора к порту В0 анодом, а катод на землю (-). (эсли индикатор с ОК) а потом напишите вот такое

DDRB.0=1; //назначить линию на выход

PORTB.0=0; // подать 0 на выход (типа -)

чем шире кругозор, тем тупее угол обозрения

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

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

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

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

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

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

Он имеет в виду что выход неполноценный, основной ток контроллер может отдать только по общему проводу, с "1" - не более 2мА на порт(встроенный ограничитель тока). Читай даташит внимательней! В таких случаях используют транзисторы для усиления, их можно взять структуры PNP и открывать наличием "0" на выходе контроллера.

Или же, в таких случаях поступают немного по другому - сегмент подключен резистором на + постоянно, а порт контроллера замыкает его на общий. Ток потребления схемы при этом не будет зависеть от того сколько сегментов включено, но и помех давать такой способ будет меньше. А еще ... запомни, нельзя выводами контроллера коммутировать общий индикатора - ведь когда будут гореть все сегменты, ток через него будет около 100мА !!! а он рассчитан лишь на 20мА. Это допустимо лишь для мелких индикаторов, для которых нужен небольшой ток(1-2мА).

И еще читай даташит внимаельней, там есть ограничения на ток отдельного вывода порта, общий ток для одного порта (8 бит) и общий ток для шины питания контроллера - их может быть несколько, и подключены они могут быть к разным портам. Вобщем там выходит так что общее ограничение по току для порта в целом не дает возможности использовать на полную все выводы порта сразу.

и еще один момент - "оно и так работает" не означает что оно так будет работать долго :). Единственная гарантия того что все будет работать как надо неограниченно долго - неукоснительное соблюдение непревышения максимально допустимых токов. "Максимально допустимые" - это НЕ СИНОНИМ слова "рабочие".

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

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

Hongfa для различных применений в Компэл. Большой выбор в наличии!

Компания HONGFA - это не только крупнейший в мире производитель электромеханических реле, но также производитель конденсаторов, вакуумных прерывателей, трансформаторов и низковольтного коммутационного оборудования. На складе КОМПЭЛ регулярно поддерживаются около 100 самых популярных позиций электромеханических реле. Реле Hongfa могут заместить многие изделия производства недоступных брендов. Подробнее>>

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

Индикация, наверное, динамическая, а значит сегменты будут питаться повышенным импульсным током. Тут надо, скорее всего, добавить транзисторы (совет Alexeyslav). И все проблемы пропадут.

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

Тренды и лучшие решения для разработки зарядных станций в России

К 2029 году в России прогнозируется увеличение числа зарядных станций до 40 000. При этом отечественный рынок электротранспорта имеет климатические, потребительские и географические особенности. Для успешной разработки и построения инфраструктуры станций заряда в России идеальным вариантом является использование решений и электронных компонентов китайских производителей – лидеров индустрии электротранспорта и возобновляемой энергетики, которые уже представлены в КОМПЭЛ. Подробнее>>

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

спасибо за помощь l-e-o-n-a-r-d-o!!! теперь всё понял и ещё понял что я дурак))) вот)!

И ещё есть один вопрос! Как управлять тройным 7ми сегментным индикатором??? Чтобы скажем на каждой части индикатора были разные цифры (всего их 3 по 7!!! 888 надо чтобы отображалось скажем 123 ) Расскажу кАк я себе это представляю. То есть сначало на один общий катод подаём сигнал и зажигаем определённые сегменты, потом на другой, предыдущий в свою очередь тушим, и на третий(и всё это очень быстро что глаз не замечает переключений)… и при этом все сегменты трёх частей включены параллельно…. Я правильно себе всё представляю???? Не думайте что я тупой просто я самоучка))))))))

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

Секреты депассивации литиевых батареек FANSO EVE Energy

Самыми лучшими параметрами по энергоемкости, сроку хранения, температурному диапазону и номинальному напряжению обладают батарейки литий-тионилхлоридной электрохимической системы. Но при длительном хранении происходит процесс пассивации. Разберем в чем плюсы и минусы, как можно ее избежать или уменьшить последствия и как проводить депассивацию батареек на примере продукции и рекомендаций компании FANSO EVE Energy. Подробнее>>

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

Да.. Именно так.. Только для того чтобы небыло подсветки между ними надо прежде чем переключать общий на другой индикатор - потушить сегменты!!!! и даже не мешало бы там всунуть пару НОП-ов..

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

wowa!! пасибо вам огромное а то мучался) думал так или не так! дело в том что я только не давно начал читать что есть язык программирования С+! и знаю только как выдать "1" на пин и как её от туда убрать)))))) так что если вас не затруднит опишите что за "НОП" и как его вставляют и с чем едят!! буду очень признателен!!!!

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

Так ведь выше Леонардо писал как вывести еденичку а как ноль на вывод!!! а NOP это просто пустая команда в асемблере.. задаётся она через дерективу инлайн асемблера.. Почитайте в хелпе для кодевижна...

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

в окдевижине ноп записывается так:

#asm("nop"); означает один пустой цикл. Ввести его нужно чтобы ослабить эффект инерционности светодиода-тоесть после 0 он не сразу гаснет а, а через некторое очень малое время.

чем шире кругозор, тем тупее угол обозрения

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

ВСё ЯСНО ПРО ПУСТОЙ ЦИКЛ... СПАСИбО ТОЛЬКо вот я начал учить си... а на си есть такой оператор??

то есть на си скажем "PORTB. 1=0" ЭТО НЕ ТОТ САМЫЙ ПУСТОЙ ЦИКЛ? ТОЕСТЬ КОГДА НЕТ СИГНАЛА НА ВЫХОДЕ???

И ЕЩЁ ВОТ ПОЖАЛУЙСТА ОБЪЯСНИТЕ МНЕ . я хочу скажем на двух индикаторах зажигать две разные цифры, я должен скажем два общих катода индикаторов подать скажем через резисторы на PIND. 1=1 и PIND. 2=1, то есть поочерёдно их включать с большой скоростью! Вроде правильно????? Значит разобрался! Дальше есть сигменты по семь штук на каждый индикатор и мы соединяем параллельно друг другу, и подаём скажем начиная с PORTB. 0=1 до PORTB. 6=1? И тоже включаю их в определённом порядке! Так??? Если так то дальше… дальше на два общих катода с пиновД 1 и 2 я должен подавать «0» а на сегменты подавать «1» в зависимости от какой индикатор с общим катодом или анодом! Я правильно рассуждаю????

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

Текст программы при этом будет выглядеть примерно так в моём понимании:

while (1)

{

if(PIND. 0==1)

{PORTB.0=1;}

else

{

Pind. 4=0 ..включаем общий

Portb. 1=1

Portb. 2=1

И так далее для разных сегментов

Далее:

Pind. 4=1 ..отключаем общий

Delay_ms(nnn) делаем задержку

Pind. 5=0 включаем следующий общий

и потом PORTB. N=1 n2=1 и так далее

Или текст будет выглядеть не совсем так???

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

Давайте начнём с другого конца - сначала нарисуйте и выложите сюда схему того что вы делаете. Потом обьясните что это должно быть и потом попробуем вам помочь более детально...

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

а на си есть такой оператор??

а я для какого языка написал? китайского?

впадло много писать, ищите в нете "динамическая индикация" ОЧЕНЬ много примеров и разъяснений.

чем шире кругозор, тем тупее угол обозрения

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

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

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

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

Здрасти всем)!

«l-e-o-n-a-r-d-o» больше наверное и не нужно писать вы мне и так помогли хорошо! Вам огромное спасибо!

Мне например интересно тут общаться с людьми, не знаю как вам! Хотя вряд ли кому-то интересно говорить с неграмотным в этой сфере человеком, таким как я, да и мне бы на вашем месте было особо то и не интересно)! Ну я ни на кого не обижаюсь))))) эт так на всякий случай!

«Wowa»)

Давайте с другого конца)))! На данный момент у меня есть две глобальные цели(потом их может стать ещё больше но пока ДВЕ) первая немного больше узнать о языке программирования СИ(неделю назад я думал что нужно в МК вручную вбивать единицы и нули, а теперь благодаря этому форуму и вам всем и ещё паре книжек я уже могу последовательно зажигать несколько светодиодов))))!!! Вторая цель: по больше узнать о программирование МК и о всём что с этим связано! Каких-то определённых целей на счёт того устройства которое я хочу собрать у меня нету! На данный момент я хочу сам(не без вашей помощи конечно) написать программку для того чтобы два 7ми сегментных индикатора отображали две разные цифры! Схему наверное рисовать не буду так как не знаю в чём её рисовать в ворде или в поинте или в блокноте))))))) постараюсь детально всё описать как у меня это собрано!: два индикатора 7ми сегментных у каждого по девять выводов 8мь сегментов плюс точка и один общий! Точку пока не трогаем! Все 7мь сегментов я соединяю параллельно и подключаю к выводам(attiny 2313): от PB0 до PB6. Два общих я подключил к выводам PD4 и PD5. вот в принципе-то и вся схема. Что касается программы, алгоритм такой: инициализация нажатия кнопки> если не нажата то ничего> иначе> подать на PIND 4 «единицу» > включить сегменты соответствующие определённой цифре> задержка > подать на PIND4 «ноль» > задержка > подать на PIND5 «единицу» > зажечь сегменты соответствующие следующей цифре> задержка > и выключить пин 5 и так далее, вот примерно так!

Все порты «Б» настроены на «out» порты «Д» же настроены на «IN» все кроме естественно 4 и 5))

«Alexeyslav» здрасти и вам) такс для меня два новых слова «маска и массив»)))))) попробую догадаться, маска это(в моём случае) набор операторов(каждый из наборов соответствует одной цифре ОТОБРАЖАЮЩЕЙСЯ НА ИНДИКАТОРЕ) включающий определённые ножки моей микросхемы??? Так?? А массив это наверное чтобы каждый раз одно и то же не писать если часто в программе встречается, а объединить одним именем и потом ссылаться на этот набор(массив) ???? я наверное не прав))))))

И ещё просьба для всех)))) можно ко мне не обращаться на «ВЫ»))))))) мне это так не нравиться)))) тем более мне всего 22))

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

эффект получился странный... зажигается "2" на первом индикаторе потом тухнет, зажигается 2ве "4" тухнут и зажигается "4" на втором индикаторе и заново...

я видно совсем не то что-то делаю... то есть пин Д 2 в какойто момент отказывается отключаться когда вдруг две "4" зажигаются а должна ведь одна и на втором индикаторе...

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

Схему наверное рисовать не буду так как не знаю в чём её рисовать в ворде или в поинте или в блокноте)))))))

есть прога простая и удобная- SPLAN

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

вот тут на картинке показано как это работает http://www.radiokot.ru/start/mcu_fpga/avr/15/

в прикрепленном файле мой исходник для тини 2313, кодевижн, в нем трехразрядный индикатор, и прерывания на линиях инт0 и инт1- прибавление и уменьшение значения на индикаторе (не помню работает ли это), динамическая индикация по таймеру. Разбирайтесь, экспериментируйте. будут вопросы задавайте.

маска- это логические действия с значением переменной для считывания, записи одного или нескольких бит в байте.

массив- это таблица некоторых значений. бывают одномерные или многомерыне. Например 1,25,4,8 это одномерный массив состоящий из одной строки и 4 столбцов. Часто называют рядком. многомерный-таблица- как в шахматной доске если выставит вместо фигур циферки, мы можем найти каждую цифру по ее индексам как в декартовой системе координат. В шахматах там буква и цыфра. примеры в моем исходнике есть const flash char pos и const flash char digit флеш тут означает что массив будет размещен в памяти программы а конст что значения в нем не меняются, хотя они и так не менялись бы изза того что во флеше записаны. было бы char digit- тогда он был бы в оперативной памяти и мы могли бы менять значения в нем.

ой, а файл то я забыл прикрепить :wub:

1.rar

Изменено пользователем wowa
Я убрал лишний пост..

чем шире кругозор, тем тупее угол обозрения

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

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

Если нарисовать таких масок последовательно для 0 1 2 3 и т.д. их можно будет выбирать по номеру из массива.

Все 7мь сегментов я соединяю параллельно и подключаю к выводам(attiny 2313): от PB0 до PB6. Два общих я подключил к выводам PD4 и PD5. вот в принципе-то и вся схема.

Для эмулятора сойдет, а вот реальный контроллер так не потянет.

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

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

так люди спасибо)) но я помоему не с того конца начал))) засяду за книги))) почитаю а потом начну заного)))! так что вопросы ещё будут!!!!))) спасибо всем)

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

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

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

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

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

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

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

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

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

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

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