Здравствуйте, вопрос наверное к разработчикам. Для проверки идей нужны микросхемы с I2S. Неважно какие, лишь бы имелась работа с этим протоколом. По идее МК типа stm32F4х должны работать. А еще что-нибудь с таким протоколом есть? Их ведь довольно много, но как их найти в Proteus? Составлять список реальных чипов и проверять его на наличие моделей в proteus? ИМХО это нереально...
Набираете I²C в строке- и у вас появятся все микросхемы, где в хароактеристиках вписано: I²C (только учтите, не все микросхемы имеют модель для работы в протеусе, иногда это бывает только УГО)
Нет, именно I2S. Тем не менее совет сработал, но... для девайсов без моделей. Хотя модель STM32F4х, насколько я понимаю, есть, но в получаемом по указанию I2S списке ничего нет. И понятно почему: поиск идет по названию и описанию. Тогда получается, в моделях proteus ничего окромя STM32F4х с протоколом I2S нет?
I2S протокол передачи аудио(на сколько помню) и наличие его в списке - всего лишь уведомление об реализованной аппаратной поддержки этого протокола в чипе. Что мешает его программно реализовать? Возможно и найдется ответ почему его поддержки нет в эмуляторе...
И да, мир суров. Придётся искать чипы с протоколом, искать аналоги в протеусе и проверять наличие нужных функций. Информация не всегда соответствует действительности, мягко говоря.
I2S протокол передачи аудио(на сколько помню) и наличие его в списке - всего лишь уведомление об реализованной аппаратной поддержки этого протокола в чипе.
Не совсем так. Есть много чипов, в которых I2S является основной функцией. Например различные аудиоконвертеры, кодеры и декодеры, звуковые процессоры, УНЧ и т.п. Например MAX98375. Можно ли смоделировать его работу в протеусе на том же STM32F4х? Конечно можно! Но гораздо проще этот самый MAX98375 купить в виде модуля.
int h1,h0,m1,m0,s1,s0; // h1 - десятки часов, h0 - еденицы часов и так далее ... int d1, d0, mn1, mn0, y1, y0, dw; // d1 - десятки дней, d0 - еденицы дней и так далее... int t0, t1, tv; // t1 - десятки температуры, t0 - еденицы температуры и так далее ... float temp; // Переменная температуры uint32_t timer; // переменная для счетчиков времени
//---------- void SETUP ---------- void setup(){
Serial.begin (9600);
int devices = LC.getDeviceCount(); //Создаём целочисленную переменую devices и сохраняем в ней значение количества устройств for (int address = 0; address < devices; address ++) //Начинаем инициализацию устройств в цикле переменная devices = 2, поэтому цикл выполнится 2 { LC.shutdown(address, false); //Выводим устройство с адресом равным address из энергосберегающего режима LC.setIntensity(address, 8); // Устанавливаем интесивность свечения для устройства с адресом равным address на средний уровень LC.clearDisplay(address); // и очищаем дисплей с адресом равным address // Serial.println(address);delay(100); } sensor.requestTemp(); // запрос температуры refreshAll(); // очистить экран }
if (millis() - timer >= 1000) { // измерение температуры длится 750 мс, у нас чуть больше timer = millis(); sensor.requestTemp(); // запрос температуры }
if (sensor.readTemp()){ //запрашивает данные с датчика и возвращает true, если они прочитаны корректно.
temp = sensor.getTemp(); // присваиваем результат Serial.println(sensor.getTemp());
t1 = (int)temp/10; // t1 - десятки температуры Serial.print((int)temp/10); Serial.print(":"); t0 = (int)temp%10; // t0 - еденицы температуры Serial.print((int)temp%10);
LC.setDigit(1, 1, t1, false); // выводим на дисплей (№ MAX7219, разряд, наше значение, точка вкл/выкл) LC.setDigit(1, 2, t0, true); // выводим на дисплей (№ MAX7219, разряд, наше значение, точка вкл/выкл)
Serial.println(" end"); //delay(2000); } else { // если данные с датчика прочитаны не корректно высвечиваем "0" ("error"). LC.setDigit(1, 0, tv, true); // выводим на дисплей (№ MAX7219, разряд, наше значение, точка вкл/выкл) Serial.println("error"); //delay(2000); } } //---------- ЧАСЫ ---------- void watch() {
h1 = rtc.getHours()/10; // десятки часа h0 = rtc.getHours()%10; // еденицы часа m1 = rtc.getMinutes()/10; // десятки минут m0 = rtc.getMinutes()%10; // еденицы минут s1 = rtc.getSeconds()/10; // десятки секунд s0 = rtc.getSeconds()%10; // еденицы секунд
int devices = LC.getDeviceCount(); // devices значение количества устройств for (int address = 0; address < devices; address ++) // Начинаем инициализацию устройств в циклепеременная devices = 2, поэтому цикл выполнится 2 раз { LC.clearDisplay(address); // очищаем дисплеи } } //---------- КОНЕЦ ----------
в железе проверить нет возможности пока, детальки едут из Китая ... нарисовал в протеусе и ... три дня Спойлер
и вот тут затык . протеус никак не хочет отображать температуру хотя в ардуиновской программе выводиться Спойлер да я менял библиотеки, ножки атмеги328 (ардуины) и никак не разберусь... почему в ардуиновском пороге выводится темпера, а в потеусе выводится "0" (если данные с датчика прочитаны не корректно высвечиваем "0" ("error")) как будто датчик не подключен!
большая просьба, написать какой нибуть код и проверте в моем протеусе выводится температура? или подскажите, что не так я нарисовал в протеусе? а может температура и в железе выводиться не будет ?
Я бы поэкспериментировал со свойствами подтягивающего резистора на линии датчика (digital/analog). В своё время тоже в каком-то из этих режимов у меня не работало.
со свойствами подтягивающего резистора на линии датчика (digital/analog).
Вы имеете ввиду это СпойлерПлата Arduino Nano имеет 14 цифровых контактов, которые помечаются буквой D (цифровой, digital). Контакты используются как входы и выходы, у каждого имеется подтягивающий резистор. Аналоговые пины обозначаются буквой А и используются как входы. У них отсутствую подтягивающие резисторы, они измеряют поданное на них напряжение и возвращают значение при помощи функции analogRead().
я выше писал пробовал подключить к А0, А1 (У них отсутствую подтягивающие резисторы) пробовал подключить к D2, D1 (у каждого имеется подтягивающий резистор)
1. это мне не подходит 2. мне нужно три экрана показывающие время, температуру за окном, температуру в кухне 3. под все свои хотелки я в состоянии написать скеч сам у вас прошу помощи разобраться с протеусом пока не приехали из китая комплектующие, почему он не показывает температуру
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения