-
arduino-tvout
У меня вот опять вопрос возник)))))
Вот скетч:
PHP код:
#include <TVout.h>
#include <fontALL.h>
TVout TV;
//int ffff = 0;
byte serialInArray[8];
int serialCount = 0;
int inByte = 0;
int watertemp = 0;
int turbo = 0;
int volts = 0;
int pboost = 0;
int result = 0;
void setup()
{
TV.begin(PAL,100,40); // 1 ширина, 2 высота
TV.select_font(font6x8); // 1 ширина, 2 высота
Serial.begin(115200);
}
void loop()
{
//TV.clear_screen();
TV.set_cursor(0,6);
TV.print("TMP ");
TV.print(watertemp);
TV.set_cursor(40,6);
TV.println(volts);
TV.set_cursor(0,14);
TV.print("TURBO ");
TV.println(turbo);
TV.set_cursor(0,22);
TV.print("PEAK ");
TV.println(pboost);
TV.set_cursor(0,30);
TV.print("RPM ");
TV.println(result);
if (Serial.available() > 7)
{
inByte = Serial.read();
serialInArray[serialCount] = inByte;
serialCount++;
if (serialCount ==8)
{
watertemp = serialInArray[0]; //senstvaz
turbo = serialInArray[1]; //kpa
pboost = serialInArray[2]; //pboost
volts = serialInArray[3]; //volts
result = serialInArray[7];
result = (result << 24) | serialInArray[6];
result = (result << 16) | serialInArray[5];
result = (result << 8) | serialInArray[4];
serialCount = 0;
inByte = 0;
Serial.flush();
}
}
}
В этой строчке "TV.begin(PAL,100,40); // 1 ширина, 2 высота" задаётся разрешение, максимальное 120х96 , это занимает в памяти 1440 байт (120*96/8=1440), но так как у меня это работает в Atmega168, а она имеет размер памяти 1024 байта, то пришлось уменьшить разрешение. Ну это в общем может кому-то пригодится.
А вот спросить я хотел, можно ли как-то узнать сколько потребляется памяти в данный момент микроконтроллером? (не с этим скетчем, а вообще)
-
Re: arduino-tvout
PHP код:
// функция возвращает свободное количество байт оперативной памяти
int freeRam () {
extern int __heap_start, *__brkval;
int v;
return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval);
}
// вызов
..
Serial.print("Free RAM=");
Serial.println(freeRam(), DEC);
..
-
Re: arduino-tvout
-
Re: arduino-tvout
_msd, я новичек в кодинге, не подскажете, как эти строки в ардуину запихнуть? не врублюсь куда функцию вставлять, при компилировании пишет "return-statement with a value, in function returning 'void' "
-
Re: arduino-tvout
вот полная программа
Код:
void setup()
{
GPSSerial.begin(9600);
Serial.print("FreeRAM=");
Serial.println(freeRam(), DEC);
}
void loop()
{
}
int freeRam () {
extern int __heap_start, *__brkval;
int v;
return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval);
}
-
Re: arduino-tvout
Спасибо, уже правда вывел. Только почему бы не писать инт фриирам вообще до сетапа, а в лупе как раз выводит в порт значение, когда надо?