Вопрос по фьюзам атмега 8

Blackflash20
Offline
Зарегистрирован: 06.05.2020

Решил помучить дисплей  1601 c i2c модулем и атмега 8. Код писал в ардуина иде. Затем заливал его через программатор в атмегу.  Столкнулся с проблемай все тайминги в библиотеках рассчитаны на 16мГц кварц а у меня фьюзы стоят на 1мГц от внутреннего как поменять фьюзы на внешний 8мГц или 16 если атмега 8 сможет работать на 16. Включения дисплея секунд 10-15 ждать приходится  основная проблема именно в этом. Само измерение происходит быстро 

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,8,2);  // определяем дисплей 1601 как дисплей 802 в одной строчьке пишется 2 столбца 
float input_volt = 0.0;//начальное напряжения Обевляем переменную Для волт 
float input_amper=0.0;//начальное сила тока  Обевляем переменную Для ампер
void setup()
{
  lcd.init();                      // initialize the lcd 
  lcd.backlight();
  lcd.setCursor(0,0);
  lcd.print("V=");
  lcd.setCursor(0,1);
  lcd.print("A=");
}
void loop()
{
//------------------вольтметр----------------------------------------------------   
   
 int analogvalue = analogRead(A0); // устанавливаем А0 как вход вольтметра 
   input_volt = (analogvalue * 5.0) / 1024; // формула для конвертирования значения напряжения 
     lcd.setCursor(2,0);// установка курсора в положение 
       lcd.print(input_volt);// вывод напряжения на дисплей 
  delay(10);// пауза
 //------------------------------------------------------------------------------------





}

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

А не проще в IDE поменять на 1МГц? Или прямо надо 16?

Blackflash20
Offline
Зарегистрирован: 06.05.2020

Когда не умеешь трудно поменять )

Так наверно проще в библиотеке все тайминги разделить на 16. Только делать не умею 

b707
Offline
Зарегистрирован: 26.05.2017

Blackflash20 пишет:

 Включения дисплея секунд 10-15 ждать приходится  основная проблема именно в этом.

вы думаете это зависит от фьюзов?

Blackflash20
Offline
Зарегистрирован: 06.05.2020

Да потому что мк работает на честоте 1мГц если поменять фьюзы на внешний кварц 16мГц  то мк будет работать в 16 раз быстрей.

Green
Offline
Зарегистрирован: 01.10.2015

Blackflash20 пишет:

Когда не умеешь трудно поменять )

Ищите и устанавливайте minicore, и выставляйте сколько вам нужно, если думалки нет.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Blackflash20 пишет:

Когда не умеешь трудно поменять )

Так наверно проще в библиотеке все тайминги разделить 

Хрена-се у Вас понятия о простоте. Одну цифирь вписать или выискивать по всем библиотекам ХЗ что.

Чего там уметь-то в IDE?

  1. Находите там блок, посвящённый Вашей плате (какую используете?).
  2. Копируете его и в копии заменяете имя платы на такое же, но с припиской _1MGz
  3. Наконец, находите (или добавляете) строку <имя платы>.build.f_cpu= м прописываете туда 1000000L

Вот и всё. Появится новая плата, с нею и компилируйте. Чего из этого Вы не умеете?

Blackflash20
Offline
Зарегистрирован: 06.05.2020

Поменял фьюзы под 8мГц теперь запускается за 5-6 секунд. При установке фьюзов под внешний мк лочется 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Blackflash20
Offline
Зарегистрирован: 06.05.2020

У меня нет такой платы у меня Arduino AG or older и там выбрано атмега 8 частоту выбрать нельзя 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Blackflash20 пишет:

Arduino AG or older и там выбрано атмега 8 частоту выбрать нельзя 

В #6 пошагово расписано как это сделать.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Blackflash20 пишет:

У меня нет такой платы у меня Arduino AG or older и там выбрано атмега 8 частоту выбрать нельзя 

"за каждым павлиньим хвостом скрывается обычная куриная жопа" (c) Фаина Раневская

Blackflash20
Offline
Зарегистрирован: 06.05.2020

ардуино 8мГц появилась в платах теперь не компелируется ничего 

loading hardware from C:\arduino-nightly\hardware: loading package arduino: loading platform release: Error reading file: Error parsing data at line 0: Invalid line format, should be 'key=value'
 
Ошибка компиляции для платы atmega8 (8 MHz).
 
Blackflash20
Offline
Зарегистрирован: 06.05.2020

Все проблему решил установил Mini Core из этой статьи https://radio-blogs.ru/blog/arduino/arduino-na-atmega8-atmega48-atmega88-atmega168

Green
Offline
Зарегистрирован: 01.10.2015

Так значит можешь, если захочешь!

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Green пишет:

Так значит можешь, если захочешь!

Права Раневкая )))

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Blackflash20 пишет:

ардуино 8мГц появилась в платах теперь не компелируется ничего 

Значит действительно не можете даже две строчки скопировать. Жаль :-(

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

ЕвгенийП пишет:

Значит действительно не можете даже две строчки скопировать. Жаль :-(

...нам учитель задаёт с иксами задачу...