07.10.2016, 20:51
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: OLED ssd1306 + STM32f030f4
NewWriter, Спасибо за подробное описание и пример. Буду начинать разделять на модули..... Есть уже пример. Часто пишу текст программ без описания чтобы была своего рода защита от чужих глаз)) Помогало)) Работа у меня не стабильная. Зарплата маленькая, и не сильно стараются продвигать готовые устройства..... Вот параллельно начал подрабатывать в других сферах.... Сейчас срочно надо устройство сделать. Пока допишу всем гамузом в майне..... Потом из него уже буду делать модули. В первый раз будет сложновато, но у меня будет проект готовый в майне, и нужно будет сделать точно такой же только модульный.
На модули чтобы разделять надо указатели хорошо знать как объявлять и вызывать. Попутно и их изучаю. Вот по примерам чужих библиотек немного освоил указатели....
|
|
|
|
07.10.2016, 21:44
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: OLED ssd1306 + STM32f030f4
__________________
Осторожно , злой кот
|
|
|
Сказали "Спасибо" dosikus
|
|
|
08.10.2016, 23:42
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: OLED ssd1306 + STM32f030f4
Немогу понять почему таймер 15 канал 1 не работает захват..... Канал 2 захват работает... Мож кто в курсе? Может я опять что недочитал?...В даташите написано что он есть у stm32f030x8. У меня как раз STM32F030C8T6...
Значение переменной t_TAH постоянно обновляется и показывает 50, 51. А значение count_imp тоже тикает примерно 1 раз в пол секунды... Ножка голая, немогу понять почему оно всё вот так.....
Разобрался как напрямую прописать оба канала. SPL сразу оба не включал. Потихоньку начинаю напрямую через регистры иниты делать периферии ))
Последний раз редактировалось miwutka; 09.10.2016 в 01:37.
|
|
|
|
09.10.2016, 12:20
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: OLED ssd1306 + STM32f030f4
Подключаю на вход захвата сигнал ШИМа от таймера 16. Подключаю ножки напрямую. Через пол минуты теряет связь дисплей и программа зависает в вайле от I2C. Я еще не прописал таймаут для I2C. Получается дисплей както ливит помехи от шима? Как от этого можно защитится??? Шим до 300 Гц. Дисплей 300 кГц I2C.
|
|
|
|
09.10.2016, 12:40
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
|
Re: OLED ssd1306 + STM32f030f4
Наверно не "захват сигнала ШИМа", а измерение периода сигнала. От какого источника идет сигнал, который захватывается?
И это наверняка беды опять от сваленных в кучу функций, с трудноуловимыми связями между ними.
Досикус выложил ссылки, я расписал пример, так уже бы пора бы начать двигаться в направлении модульности.
Ну или хотябы вначале отладить совместную работу I2C и таймеров в захвате, безотносительно дисплея и прочей лабуды.
|
|
|
|
09.10.2016, 12:47
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: OLED ssd1306 + STM32f030f4
miwutka, На "макетке" с длинными параллельными проводниками?
Квадратная шина "наплатная" ...
Сообщение от miwutka
|
Подключаю на вход захвата сигнал ШИМа от таймера 16.
|
Что надо? Измерить скважность и период?
__________________
Осторожно , злой кот
|
|
|
|
09.10.2016, 13:49
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: OLED ssd1306 + STM32f030f4
я генерирую частоту импульсов на таймере 16. от 1 до 320 Гц. И выход этих импульсов подаю на вход захвата таймера 15, канал 1. Чтобы просто замерять частоту импульсов. Зависание происходит тут while (!(I2C1-›ISR & I2C_ISR_TXE) );
PHP код:
|
void ssd1306_send(uint8_t control_byte, uint8_t data) { I2C1-›CR2 = I2C_CR2_AUTOEND | (2‹‹16) | (SSD1306_I2C_ADDR‹‹1); /* Check Tx empty */ while (!(I2C1-›ISR & I2C_ISR_TXE) ); I2C1-›TXDR = control_byte; I2C1-›CR2 |= I2C_CR2_START; while (!(I2C1-›ISR & I2C_ISR_TXE) ); I2C1-›TXDR = data; }
//тут задаем частоту переменной F_Taho void SysTick_Handler (void) {
if (delay_count › 0) {delay_count--;} else { F_Taho++; if (F_Taho == 1) { LEDpins[0] = (23920000/(F_Taho*200))*2; TIM16-›PSC = LEDpins[0]; TIM17-›PSC = LEDpins[0]; TIM_Cmd(TIM17, ENABLE); TIM_Cmd(TIM16, ENABLE); } if (F_Taho == 320) delay_count = 1800; else if (F_Taho == 321) delay_count = 4000; else delay_count = 10; } //В основном цилке это
while (1) { if ( F_Taho › 320 ) { F_Taho = 0; TIM_Cmd(TIM17, DISABLE); TIM_Cmd(TIM16, DISABLE);
} LEDpins[0] = (23920000/(F_Taho*200))*2; TIM16-›PSC = LEDpins[0]; TIM17-›PSC = LEDpins[0]; sprintf(str, "%4i ",F_Taho);//speed_sr_TAH sprintf(str2, "sp=%3i tah=%4i",speed_sr,speed_sr_TAH); SSD1306_GotoXY(5, 24); SSD1306_Puts(str, &Font_16x26, SSD1306_COLOR_WHITE); SSD1306_GotoXY(5, 52); SSD1306_Puts(str2, &Font_7x10, SSD1306_COLOR_WHITE); SSD1306_UpdateScreen_My(); Delay_ms(20); }
|
если на ножку захвата ничего не подаю то дисплей не зависает....
|
|
|
|
09.10.2016, 13:51
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: OLED ssd1306 + STM32f030f4
NewWriter, мне просто надо доделать штуку одну для тестов.... И после нее всё перепишу на модули... Я ж переписывать наверно с неделю буду первый раз.... Пока во всём разберусь.....
|
|
|
|
09.10.2016, 13:56
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Всё отключено от захвата и проц завис. Системный таймер не тикает. Просто проц завис.... На питании нет кондеров еще. Может и из-за этого?
dosikus, китайские платы без пайки мне много бед наделали )) Я вот на такой припаял микруху и нормальными проводами припаялся к дисплею.
Последний раз редактировалось dosikus; 09.10.2016 в 14:19.
|
|
|
|
09.10.2016, 14:30
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: OLED ssd1306 + STM32f030f4
Сообщение от miwutka
|
На питании нет кондеров еще. Может и из-за этого?
|
Вообще нет? Издеваешься, да?
Тут у каждого Vdd как можно ближе стараешься воткнуть ...
__________________
Осторожно , злой кот
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 18:18.
|
|