Easyelectronics.ru

Электроника для всех
Текущее время: 23 окт 2019, 19:09

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 759 ]  На страницу Пред.  1 ... 26, 27, 28, 29, 30, 31  След.
Автор Сообщение
 Заголовок сообщения: Re: ШИМ-управление двумя вентиляторами с таймером
СообщениеДобавлено: 23 авг 2016, 19:02 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2015, 17:41
Сообщения: 2620
Откуда: Русь, Новороссийск
Коллеги, благодарю за подсказки и поучения. :)
Итого "мигания светодиодами" под катом - вдруг кому пригодится.
В кексе занимает около 200 байт, для работы требует два флага (быстрый и медленный), оба со скважностью 2 (меандр).
Show


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ШИМ-управление двумя вентиляторами с таймером
СообщениеДобавлено: 25 авг 2016, 18:32 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2015, 17:41
Сообщения: 2620
Откуда: Русь, Новороссийск
Я тут втихую чуть поменял схему подключения МК с целью обрести выход для "своей" пищалки.
Получилось так:
Show

В прерывании я тоже поправил "переключатель стейта"
Show

Нормально?
Вложение:
Схема ног МК.png
Схема ног МК.png [ 102.57 Кб | Просмотров: 6110 ]


Вложения:
Computer FAN Controller (Proteus model).rar [21.36 Кб]
Скачиваний: 133
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ШИМ-управление двумя вентиляторами с таймером
СообщениеДобавлено: 25 авг 2016, 21:40 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2015, 17:41
Сообщения: 2620
Откуда: Русь, Новороссийск
Привет всем :)
Появился вопрос. Из двух частей.

Если я в какой-то функции объявляю локальную переменную
static u08 latch;
то понятно, что между вызовами своей родной функции она остаётся жить, а другие функции её изменить не могут. Вопросы вот в чём:

1.
А другие функции её прочитать могут? А, ну да, не могут, конечно, потому что никак не имеют возможности указать на неё.

2.
А могу ли я в другой функции завести себе точно такую же
static u08 latch;
чтобы и тип и имя совпадали с первой?
Ведь для компилятора они точно будут разными. Для меня - тоже, т.к. я буду помнить о них только когда буду видеть ту или другую функцию.
Зато путаться не придётся: "локальный latch" - он в Африке африканский "локальный latch", а в Америке - американский "локальный latch" и т.д., я куда бы ни прилетел - везде у меня есть местный "локальный latch".
Получается, что я хоть в каждой функции могу себе заводить местных "локальный latch" или "локальный temp". Правильно рассуждаю?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ШИМ-управление двумя вентиляторами с таймером
СообщениеДобавлено: 25 авг 2016, 22:43 
Старожил
Аватара пользователя

Зарегистрирован: 05 фев 2010, 16:57
Сообщения: 2148
Откуда: Нальчик
VladyMile писал(а):
Если я в какой-то функции объявляю локальную переменную
static u08 latch;
А другие функции её прочитать могут? А, ну да, не могут, конечно, потому что никак не имеют возможности указать на неё.
Те переменные которые обрабатываются в нескольких функциях - просто делай глобальными и все... ничего страшного в этом нет...

есть правда несколько обходных путей, как можно поработать со статической переменной:
1 - При выходе из функции - вернуть значение статической переменной...
2 - При выходе из функции - вернуть указатель на статическую переменную, тогда с помощью указателя, можно будет даже ей управлять из другого места...

VladyMile писал(а):
А могу ли я в другой функции завести себе точно такую же
static u08 latch;
чтобы и тип и имя совпадали с первой?
Конечно... ведь в этом отношении это по сути локальная переменная...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ШИМ-управление двумя вентиляторами с таймером
СообщениеДобавлено: 25 авг 2016, 23:46 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2015, 17:41
Сообщения: 2620
Откуда: Русь, Новороссийск
Угу. Ясно. Благодарю.

Пишу кнопки дальше.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ШИМ-управление двумя вентиляторами с таймером
СообщениеДобавлено: 26 авг 2016, 12:45 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2015, 17:41
Сообщения: 2620
Откуда: Русь, Новороссийск
Привет всем :)

Ещё вопрос. Я его почитал, но лучше у вас переспросить.
Если я делю число u08 на другое u08 и у меня получается число с дробной частью, то что при этом происходит?
Как я понял, остаётся целая часть, а дробная отбрасывается, при этом округление целого идёт "вниз".
Я правильно понял?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ШИМ-управление двумя вентиляторами с таймером
СообщениеДобавлено: 26 авг 2016, 13:03 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 2471
VladyMile писал(а):
Если я делю число u08 на другое u08 и у меня получается число с дробной частью, то что при этом происходит?
Как я понял, остаётся целая часть, а дробная отбрасывается, при этом округление целого идёт "вниз".
Я правильно понял?

Почти. Округления как такового нет, просто отбрасывается дробная часть. Так что 254/255 это 0, а не 1.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ШИМ-управление двумя вентиляторами с таймером
СообщениеДобавлено: 26 авг 2016, 13:25 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2015, 17:41
Сообщения: 2620
Откуда: Русь, Новороссийск
Благодарю :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ШИМ-управление двумя вентиляторами с таймером
СообщениеДобавлено: 26 авг 2016, 19:22 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2015, 17:41
Сообщения: 2620
Откуда: Русь, Новороссийск
Привет всем :)

Очередной вопрос:

Очень хочется настроить делитель клока АЦП на максимальную скорость. Ведь по сути мне и 6-разрядного АЦП хватит, бОльшая точность останется невостребованной.
А вот получить быстрый отклик от АЦП после запроса преобразования - очень хочется.

В чём сила и слабость такого взгляда на вопрос?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ШИМ-управление двумя вентиляторами с таймером
СообщениеДобавлено: 27 авг 2016, 01:14 
Старожил
Аватара пользователя

Зарегистрирован: 11 авг 2016, 20:52
Сообщения: 634
Откуда: GMT+6
VladyMile
Цитата:
By default, the successive approximation circuitry requires an input clock frequency between 50kHz and
200kHz to get maximum resolution. If a lower resolution than 10 bits is needed, the input clock frequency to the
ADC can be higher than 200kHz to get a higher sample rate.
Table 29-15. ADC Characteristics писал(а):
Absolute accuracy (Including
INL, DNL, quantization error,
gain and offset error)

ADC clock = 200kHz
2 LSB

ADC clock = 1MHz
4.5 LSB
Table 29-15. ADC Characteristics писал(а):
Clock Frequency 50 - 1000 kHz

Т.е на частоте 1МГц вы потеряете 2.5 бита, по сравнению с дефолтной частотой.

VladyMile писал(а):
А вот получить быстрый отклик от АЦП после запроса преобразования - очень хочется.
Обычно в таком случае АЦП постоянно молотит замеры в массив, а при запросе просто берется последний замер из массива.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ШИМ-управление двумя вентиляторами с таймером
СообщениеДобавлено: 27 авг 2016, 10:36 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2015, 17:41
Сообщения: 2620
Откуда: Русь, Новороссийск
Kelvin писал(а):
ADC clock = 200kHz
2 LSB

ADC clock = 1MHz
4.5 LSB
Т.е на частоте 1МГц вы потеряете 2.5 бита, по сравнению с дефолтной частотой.

Очень ценно. В комплите на МК такого я не видел. Сейчас ещё полистаю.
А 4.5 LSB на 1 МГц - это не выглядит устрашающе. Но подумаю ещё...

UPD: Поставлю делитель АЦП на 8 - это 1 МГц. Точности будет с избытком, а отклик в пару десяток мксек - радует.


Kelvin писал(а):
VladyMile писал(а):
А вот получить быстрый отклик от АЦП после запроса преобразования - очень хочется.
Обычно в таком случае АЦП постоянно молотит замеры в массив, а при запросе просто берется последний замер из массива.

Ох не хочу оглушать МК ещё и немеряной кучей прерываний, подавляющая часть которых уйдёт на помойку.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ШИМ-управление двумя вентиляторами с таймером
СообщениеДобавлено: 28 авг 2016, 19:58 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2015, 17:41
Сообщения: 2620
Откуда: Русь, Новороссийск
Kelvin писал(а):
Show Протеус 8.4 SP0

Уф. Долго искал для Атмел Студии 7. Нашёл:
Код:
для AVR GCC (начиная с версии 4.4) можно отключить оптимизацию для блока кода с помощью директивы pragma:

****************************
#pragma GCC push_options
#pragma GCC optimize ("O0")

//Код, где будет отключена оптимизация
...

#pragma GCC pop_options
****************************


Для функции можно отключить оптимизацию добавлением атрибута
__attribute__((optimize("O0"))), например так:

void __attribute__((optimize("O0"))) foo(unsigned char data)

{
    // не модифицируемый компилятором код
    ...
}


Это я к тому, что без отключения оптимизации при компиляции код часов на собаке не работает на Протеусе 7.7, 7.10 и 8.4.
Похоже, что именно из-за оптимизации код у нас не работал.

Но даже с отключенной оптимизацией WDT я Протеус (7.10 || 8.4) всё равно пока не запустил - ресетов нет, но светодиод пока не мигает. Проверяю код часов и временнЫх флагов.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ШИМ-управление двумя вентиляторами с таймером
СообщениеДобавлено: 29 авг 2016, 05:50 
Старожил
Аватара пользователя

Зарегистрирован: 11 авг 2016, 20:52
Сообщения: 634
Откуда: GMT+6
VladyMile писал(а):
Это я к тому, что без отключения оптимизации при компиляции код часов на собаке не работает на Протеусе 7.7, 7.10 и 8.4.
Похоже, что именно из-за оптимизации код у нас не работал.
Для этого я прикреплял к сообщениям скомпилированную прошивку, она на старых протеусах работает?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ШИМ-управление двумя вентиляторами с таймером
СообщениеДобавлено: 29 авг 2016, 08:43 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2015, 17:41
Сообщения: 2620
Откуда: Русь, Новороссийск
Kelvin писал(а):
VladyMile писал(а):
без отключения оптимизации при компиляции код часов на собаке не работает на Протеусе 7.7, 7.10 и 8.4. Похоже, что именно из-за оптимизации код у нас не работал.
Для этого я прикреплял к сообщениям скомпилированную прошивку, она на старых протеусах работает?

Не знаю - для этого надо найти ваш код и по нему собрать модель в Проте.
Или пришлите вашу модель Проты от этого кекса.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ШИМ-управление двумя вентиляторами с таймером
СообщениеДобавлено: 29 авг 2016, 08:50 
Старожил
Аватара пользователя

Зарегистрирован: 11 авг 2016, 20:52
Сообщения: 634
Откуда: GMT+6
VladyMile
ATmega328P, 8 МГц тактовая, 10к на ресет, PORTB.0 переключается при "гавке", PORTB.1 в 0 при запуске МК.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ШИМ-управление двумя вентиляторами с таймером
СообщениеДобавлено: 29 авг 2016, 08:53 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2015, 17:41
Сообщения: 2620
Откуда: Русь, Новороссийск
Уже разобрался :)
Show


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ШИМ-управление двумя вентиляторами с таймером
СообщениеДобавлено: 29 авг 2016, 19:46 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2015, 17:41
Сообщения: 2620
Откуда: Русь, Новороссийск
Мда, нехило я сегодня повеселился с собакой.
Короче, ни на Проте 7.10, ни на 8.4 я собаку как часы не запустил.
Максимум, чего добился, да и то на 7.10 - это нет ни предупреждений о таймауте, ни сброса МК. Но и работать не работает - "лед не мигает".
Возможно, где-то в душе он и мигает, но мне по флагам не видно.
Возможно, это всё же косяк компилятора АтмелСтудии7.
Текущий код следующий:
Show

Если есть идеи - велкам, а я пока возвращаюсь на часы на TIM2 и ковыряю кнопки дальше.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ШИМ-управление двумя вентиляторами с таймером
СообщениеДобавлено: 29 авг 2016, 19:55 
Старожил
Аватара пользователя

Зарегистрирован: 05 фев 2010, 16:57
Сообщения: 2148
Откуда: Нальчик
VladyMile писал(а):
Если есть идеи - велкам
Хочу предложить сэкономить нервы и перейти к часам на основе ADC )))

Могу накидать часики и заодно будет готов 8-ми канальный ADC...
Можно будет в любое время брать готовое значение с любого канала...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ШИМ-управление двумя вентиляторами с таймером
СообщениеДобавлено: 29 авг 2016, 20:20 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2015, 17:41
Сообщения: 2620
Откуда: Русь, Новороссийск
АЦП у меня уже почти есть. Могу его код выложить, чтобы понятно было где я сейчас.
Я над обработчиками кнопок туплю.

Отчего ж не попробовать часы на АЦП?
Одно "но" - не хочу, чтобы вы писали код "в стол".

Я вот что подумал: если собака в железе не затикает, то оставлю часы на ТИМ2, доделаю проект с 3 каналами и со спокойной душой переведу этот проект на STM32, только уже без ручных регулировок (полная автоматика на "ИИ") с ЮСБ, DLLями для системы и т.д.

Только это останавливает меня от "часов на АЦП".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ШИМ-управление двумя вентиляторами с таймером
СообщениеДобавлено: 29 авг 2016, 20:41 
Старожил
Аватара пользователя

Зарегистрирован: 05 фев 2010, 16:57
Сообщения: 2148
Откуда: Нальчик
VladyMile писал(а):
АЦП у меня уже почти есть. Могу его код выложить, чтобы понятно было где я сейчас.
Просто у меня пока нет времени ваш код дорабатывать... так что если возникнет желание все таки мой вариант адаптировать под свои нужды - то свистните...
Речь идет о часах на ADC и готовом модуле опроса 8-ми каналов. Т.е. вам просто в любое время можно будет брать актуальные данные ADC с массива AdcData [Channel];

VladyMile писал(а):
Я над обработчиками кнопок туплю.
Мог бы вам предложить так же свой вариант, но он основан на прерывании 100Гц, не меньше, а у вас пока такого прерывания нет...

VladyMile писал(а):
Отчего ж не попробовать часы на АЦП?
Одно "но" - не хочу, чтобы вы писали код "в стол".
"в стол" - Это как?
Вообще то его не нужно писать, он уже где то есть готовый (найти только нужно), я там только добавлю часики... это в принципе мелочи...

VladyMile писал(а):
Я вот что подумал: если собака в железе не затикает, то оставлю часы на ТИМ2, доделаю проект с 3 каналами
1 - Вообще то в железе собака должна работать, я так понял это какая то проблема с симулятором...
2 - грех не добить 4-х канальную версию...

VladyMile писал(а):
переведу этот проект на STM32, только уже без ручных регулировок (полная автоматика на "ИИ") с ЮСБ, DLLями для системы и т.д.
Для перехода на STM32 - думаю у вас уйдет куда больше времени чем на старт AVR... так что это тема не сегодняшнего и не завтрашнего дня )))
Хотя останавливаться конечно не нужно, нужно двигаться в перед...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ШИМ-управление двумя вентиляторами с таймером
СообщениеДобавлено: 29 авг 2016, 21:31 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2015, 17:41
Сообщения: 2620
Откуда: Русь, Новороссийск
ShadS писал(а):
так что если возникнет желание все таки мой вариант адаптировать под свои нужды - то свистните...
Речь идет о часах на ADC и готовом модуле опроса 8-ми каналов. Т.е. вам просто в любое время можно будет брать актуальные данные ADC с массива AdcData [Channel]

Конечно.
Благодарю :)
ShadS писал(а):
1 - Вообще то в железе собака должна работать, я так понял это какая то проблема с симулятором...
2 - грех не добить 4-х канальную версию...

Улыбнули.
Постараюсь.
ShadS писал(а):
Для перехода на STM32 - думаю у вас уйдет куда больше времени чем на старт AVR... так что это тема не сегодняшнего и не завтрашнего дня )))

Ну, я не спешу. И учусь. Ещё год назад я не знал, с какой стороны к МК подходить.
Как бык из анекдота - спокойно спущусь с горы и поимею всё стадо. :)
Правда, времени тоже не густо - бизнес требует внимания, плюс радиокружок.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ШИМ-управление двумя вентиляторами с таймером
СообщениеДобавлено: 30 авг 2016, 04:08 
Старожил
Аватара пользователя

Зарегистрирован: 05 фев 2010, 16:57
Сообщения: 2148
Откуда: Нальчик
Оформил примерчик, думаю разберетесь как оно робит...

Короткие нажатия кнопок управляют светиками 1..4,
Длинные нажатия кнопок управляют светиками 5..8,
На порту PORTD отображается состояние канала ADC к которому подключен переменник.


Вложения:
for_VladyMile_____ADC_BTN.7z [26.96 Кб]
Скачиваний: 135
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ШИМ-управление двумя вентиляторами с таймером
СообщениеДобавлено: 30 авг 2016, 10:50 
Старожил
Аватара пользователя

Зарегистрирован: 11 авг 2016, 20:52
Сообщения: 634
Откуда: GMT+6
VladyMile писал(а):
Мда, нехило я сегодня повеселился с собакой.
Короче, ни на Проте 7.10, ни на 8.4 я собаку как часы не запустил.
Максимум, чего добился, да и то на 7.10 - это нет ни предупреждений о таймауте, ни сброса МК. Но и работать не работает - "лед не мигает".
Возможно, где-то в душе он и мигает, но мне по флагам не видно.
Возможно, это всё же косяк компилятора АтмелСтудии7.
Заинтриговали, поставил атмел студию:
Show "большая картинка"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ШИМ-управление двумя вентиляторами с таймером
СообщениеДобавлено: 30 авг 2016, 12:46 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2015, 17:41
Сообщения: 2620
Откуда: Русь, Новороссийск
Хм.
У меня тест простой:
Я комментирую собаку и раскоменнчиваю ТИМ2 - всё работает.
Я комментирую ТИМ2 и раскомменчиваю собаку - всё не работает.
Весь код одинаковый.
Отличаются только инициализации (собака или ТИМ2) и прерывания (собачье или ТИМ2).

Ну ладно инициализации - они разные.
Всё проверили, всё вроде правильно.
Но у вас собака гавкает по тому же самому коду.
А у меня только преданно смотрит и виляет хвостом.

Но в прерываниях вообще код по факту один и тот же - тупо поднять один флаг. Остальное не в счёт.
Show

И какого оно не фурычит?

Сейчас заново создам проект. Это 15 минут делов. Мож, где-то в свойствах накосячил, пока разбирался с Протой.
ShadS писал(а):
Оформил примерчик, думаю разберетесь

Вай, Сергей, благодарю! :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ШИМ-управление двумя вентиляторами с таймером
СообщениеДобавлено: 21 окт 2016, 17:49 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2015, 17:41
Сообщения: 2620
Откуда: Русь, Новороссийск
В результате напавшей на меня работы проект фатально тормознулся: в сентябре только 2 (два!) часа за месяц уделил (вспоминал, где файлы, на чём остановился), а в октябре вообще пока не садился.
Но не по.ерил совсем - надеюсь, настанет и его время.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 759 ]  На страницу Пред.  1 ... 26, 27, 28, 29, 30, 31  След.

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB