Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 06.05.2010, 20:38  
7Fantomas7
Почётный гражданин KAZUS.RU
 
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
7Fantomas7 на пути к лучшему
По умолчанию Re: AT Mega8 вольтметр прошу помочь

CERGEI1982,
Цитата:
Ну а если надо измерять контроллером от 0 до 400 В
Вы цитату привели, хоть прочитайте ее внимательно. В самом первом посте вложена схема там делитель абсолютно рабочий собраный на резисторах в корпусе 0805 1%. Ничего переключать не нужно.
Цитата:
Советую найти книжку Шпак Ю.А. Программирование на языке С для AVR и PIC микроконтроллеров
Так ее ж и курю. Только Шпак почемуто считает что книгу обязательно будет читать академик, Вы писали
Цитата:
Если стоит перед функцией void это обозначает что функция после окончания работы не возвращает никаких переменных в главную программу,которая вызвала ее
Шпак пишет
Цитата:
В качестве типа возвращаемого значения может использоваться слово void. Это означает, что функция или не возвращает никакого значения (в некоторых языках такие функции называют процедурам). конец предложения
стр117
Блин так нихрена и не понял, возвращает или нет? Шпак такое впечатление что выдрал кусок текста не удосужившись даже прочесть просто так пол предложения написал.
Реклама:
7Fantomas7 вне форума  
Непрочитано 06.05.2010, 20:50  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: AT Mega8 вольтметр прошу помочь

Сообщение от 7Fantomas7 Посмотреть сообщение
Блин так нихрена и не понял, возвращает или нет?
Не возвращает ничего.
kison вне форума  
Сказали "Спасибо" kison
7Fantomas7 (10.05.2010)
Непрочитано 06.05.2010, 21:03  
andries5
Почётный гражданин KAZUS.RU
 
Регистрация: 19.02.2008
Сообщений: 1,802
Сказал спасибо: 124
Сказали Спасибо 602 раз(а) в 419 сообщении(ях)
andries5 на пути к лучшему
По умолчанию Re: AT Mega8 вольтметр прошу помочь

Сообщение от 7Fantomas7 Посмотреть сообщение
В качестве типа возвращаемого значения может использоваться слово void. Это означает, что функция или не возвращает никакого значения (в некоторых языках такие функции называют процедурам). конец предложения
Здесь лишнее слово "ИЛИ". Т.е. это просто процедура, например зажечь светодиод или погасить и т.д. . Перед именем функции указывается тип возвращаемого значения, например "int summa(a,b)"
int summa(a,b)
{
int c;
c=a+b;
return c;
}
функция вернет результат сложения туда где она была вызвана, и где ей были указанны два операнда a и b. Например v=summa(5,2);
Если указано void, то она не возвращает ничего.
также если на месте передаваемых ей параметров стоит void, то ей (функции) ничего не передается.

Последний раз редактировалось andries5; 06.05.2010 в 21:06.
andries5 вне форума  
Сказали "Спасибо" andries5
7Fantomas7 (10.05.2010)
Непрочитано 07.05.2010, 12:17  
nnikolaenko
Временная регистрация
 
Регистрация: 13.10.2009
Сообщений: 67
Сказал спасибо: 24
Сказали Спасибо 13 раз(а) в 9 сообщении(ях)
nnikolaenko на пути к лучшему
По умолчанию Re: AT Mega8 вольтметр прошу помочь

void - пустота; вакуум; лакуна. пробел, пропуск, пустое место
nnikolaenko вне форума  
Сказали "Спасибо" nnikolaenko
7Fantomas7 (10.05.2010)
Непрочитано 10.05.2010, 13:08  
7Fantomas7
Почётный гражданин KAZUS.RU
 
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
7Fantomas7 на пути к лучшему
По умолчанию Re: AT Mega8 вольтметр прошу помочь

Добрый всем день.
Фух щас мозги съедут.
Вобшем помогите разобраться с выводом символа на индикатор.
Суть проблемы такая:
Индикатор с общим анодом подключен к порту В катодами, однако PB0 занят для других целей. Тким образом сегменты индикатора подключены к PB1...PB7, а сегмент запятой и восе подключен к PD4 выглядит это так
PINB0 вообще вход и в индикации не участвует, таблица подключения и старшинства разрядов
g f e d c b a in
pb7 pb6 pb5 pb4 pb3 pb2 pb1 pb0
pb0 вообще вход
знакогенератор особых затроуднений не вызвал равно как и другие функции за исключением записи цифры в порт например 0b00100001 (символ9). Если бы к порту был подключен индикатор полностью то вопросов никаких не возникает этот процес понятен полностью. Но как поведет себя PB0 если PORTB=0b00100001 т.е. запись 1 в бит0 порта. И как правильно в этом случае вывести цифру.
7Fantomas7 вне форума  
Непрочитано 10.05.2010, 14:53  
MasterMushi
Вид на жительство
 
Регистрация: 14.10.2009
Сообщений: 338
Сказал спасибо: 35
Сказали Спасибо 92 раз(а) в 73 сообщении(ях)
MasterMushi на пути к лучшему
По умолчанию Re: AT Mega8 вольтметр прошу помочь

Советую проглянуть вот этот аппноут
http://www.gaw.ru/pdf/Atmel/app/avr/avr_led-key.pdf

В кратце - мы можем переключать порт на вход или выход так как нам угодно. И нужно просто распределить в какой момент времени у нас будет входом в какой выходом. Более того мы даже на одном порту можем, к примеру, навсегда один пин оставить входом а остальные поставить выходом.

Кроме того нам по сути и не надо все сегменты вешать на один порт. Это делают для удобства.... Допустим, точку переносим на другой порт, и чтобы ее установить или снять нужно использовать побитовые операции. К примеру:

PHP код:

//DDRx|=0b00000100; // Ставим ногу нужного 
//порта на выход если надо было на нее поставить сегмент индикатора
 
//Точка посажена на ногу PORTx.6 чтобы ее погасить до достаточно сделать так 

//Если индикатор типа Общий катод
PORTx&=0b11111011;

//Если индикатор типа Общий анод
PORTx&=0b00000100;

//Ну и соответственно зажигаем
//OK
PORTx|=0b00000100;   

//OA
PORTx|=0b11111011
MasterMushi вне форума  
Сказали "Спасибо" MasterMushi
7Fantomas7 (10.05.2010)
Непрочитано 10.05.2010, 16:21  
7Fantomas7
Почётный гражданин KAZUS.RU
 
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
7Fantomas7 на пути к лучшему
По умолчанию Re: AT Mega8 вольтметр прошу помочь

С апноутом проблемы в силу незнания капиталистических языков.
С асемблером тоже проблемы в силу нежелания его изучения, а в апноуте асемблер.
Цитата:
Более того мы даже на одном порту можем, к примеру, навсегда один пин оставить входом а остальные поставить выходом.
Да! да! да! так именно и нужно, забить гвоздями навсегда. Как правильно это сделать?
С точкой и побитовыми операциями вроде понятно, до точки еще доберусь.
А вот с побитовыми операциями для семи сегментов не совсем понятно
PORTB=0x01;//PB1 подтянут резистором
DDRB=0xFE; //PB1 объявлен входом остальные выхода 11111110
таким образом изначальное значение PORTB 00000001
но если мы будем делать побитовые операции хоть "И", хоть "ИЛИ" то первый раз то мы запишем что нужно, а через 10мс (частота переключения) мы будем уже писать другую цифру и на индикаторе получим не то что нужно.
7Fantomas7 вне форума  
Непрочитано 10.05.2010, 17:12  
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: AT Mega8 вольтметр прошу помочь

Сообщение от 7Fantomas7 Посмотреть сообщение
С апноутом проблемы в силу незнания капиталистических языков.
С асемблером тоже проблемы в силу нежелания его изучения, а в апноуте асемблер.
И с внимательностью тоже.
Цитата:
PORTB=0x01;//PB1 подтянут резистором
DDRB=0xFE; //PB1 объявлен входом остальные выхода 11111110
st_1 вне форума  
Непрочитано 10.05.2010, 17:59  
7Fantomas7
Почётный гражданин KAZUS.RU
 
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
7Fantomas7 на пути к лучшему
По умолчанию Re: AT Mega8 вольтметр прошу помочь

st_1,
Да протормозил имелось в виду PB0 в проекте все правильно.
За указание на ошибки оно то и вроде как и спасибо, тока вот с моим вопросом бы помогли.
7Fantomas7 вне форума  
Непрочитано 10.05.2010, 20:15  
andries5
Почётный гражданин KAZUS.RU
 
Регистрация: 19.02.2008
Сообщений: 1,802
Сказал спасибо: 124
Сказали Спасибо 602 раз(а) в 419 сообщении(ях)
andries5 на пути к лучшему
По умолчанию Re: AT Mega8 вольтметр прошу помочь

Сообщение от 7Fantomas7 Посмотреть сообщение
таким образом изначальное значение PORTB 00000001
но если мы будем делать побитовые операции хоть "И", хоть "ИЛИ" то первый раз то мы запишем что нужно, а через 10мс (частота переключения) мы будем уже писать другую цифру и на индикаторе получим не то что нужно.
Чтобы правильно горели цифры, можно делать в два этапа:
1 Погасить все катоды. PORTB |= 0b11111110;
2 Зажечь нужные, цифра (0) PORTB &=0b10000001; //fedcba , или (3) PORTB &=0b01100001;
Т.е. мы изменяем только PB7 - PB1, а PB0 не изменяем.

Последний раз редактировалось andries5; 10.05.2010 в 20:19.
andries5 вне форума  
Сказали "Спасибо" andries5
7Fantomas7 (11.05.2010)
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
АЦП в mega8 FlashAck Микроконтроллеры, АЦП, память и т.д 29 29.01.2010 17:50


Часовой пояс GMT +4, время: 19:34.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot