Проблема с тахометром, помогите!

Sanho
Offline
Зарегистрирован: 24.02.2016

  Год назад, слепил простелький тахометр для токарного станка, на дисплее LCD1602, све работало отлично. Тут решил поменять дисплей на матричный 12864, на проце ST7920 Сам дисплей запустил, работает нормально, а вот встроить код тахометра, который работал на 1602 не получается. Подскажите кто в рурсе, в чем может быть причина, где копать?

#define RPMpin 2 // датчик Холла
#include "U8glib.h"
U8GLIB_ST7920_128X64_4X u8g(10,11,12,  U8G_PIN_NONE);
long microsold = 0;
int rpm = 0;

void setup() {
digitalWrite(RPMpin, 2);
attachInterrupt(0, RPM, FALLING);
}

void loop() {
  u8g.firstPage();
do
{ 
 u8g.setFont(u8g_font_fub17n);
u8g.setPrintPos(3, 22);
u8g.print(rpm);  
delay(500);

}
void RPM ()
{
rpm = (1000.0/(millis() - microsold))*60;
microsold = millis();
}
while(u8g.nextPage());  
}  

 

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

А инициализация дисплея в setup разве не нужна?

u8g.begin();

Sanho
Offline
Зарегистрирован: 24.02.2016

ua6em пишет:

А инициализация дисплея в setup разве не нужна?

u8g.begin();

Для этого дисплея видимо нет. Вот тут все описано. http://nnm.me/blogs/pencraft/arduino-i-graficheskiy-displey-128x64-s-kontrollerom-st7920/page2/

Sanho
Offline
Зарегистрирован: 24.02.2016

Ну не ужели никто не занимается графическими дисплеями, модет проблема в прерывании?

Дальше строки attachInterrupt(0, RPM, FALLING);

программа не идет.

AlexeySh
Offline
Зарегистрирован: 16.01.2017

Ну так открывайте файлы библиотеки, которую используете для подключения графического дисплея и читате описание. Во всех нормальных библиотеках в заголовочном файле расписано какие ресурсы микроконтроллера она использует. Без файлов библиотеки, которые вы не выложили, вам никто ничего не подскажет. Так как одни и те же функции можно реализовать разными способами, через таймеры/прерывания или через временные задержки.