Показано с 1 по 6 из 6

Тема: arduino-tvout

  1. #1
    Продвинутый
    Регистрация
    03.06.2008
    Возраст
    49
    Сообщений
    320
    Вес репутации
    332

    По умолчанию 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 байта, то пришлось уменьшить разрешение. Ну это в общем может кому-то пригодится.
    А вот спросить я хотел, можно ли как-то узнать сколько потребляется памяти в данный момент микроконтроллером? (не с этим скетчем, а вообще)

  2. #2
    Пользователь
    Регистрация
    07.10.2011
    Сообщений
    23
    Вес репутации
    166

    По умолчанию Re: arduino-tvout

    PHP код:
    // функция возвращает свободное количество байт оперативной памяти
    int freeRam () {
      
    extern int __heap_start, *__brkval
      
    int v
      return (int) &
    - (__brkval == ? (int) &__heap_start : (int) __brkval); 
    }

    // вызов  
      
    ..
      
    Serial.print("Free RAM=");
      
    Serial.println(freeRam(), DEC);
      .. 

  3. #3
    Продвинутый
    Регистрация
    03.06.2008
    Возраст
    49
    Сообщений
    320
    Вес репутации
    332

    По умолчанию Re: arduino-tvout

    Спасибо!!!

  4. #4
    Пользователь
    Регистрация
    03.11.2011
    Сообщений
    27
    Вес репутации
    166

    По умолчанию Re: arduino-tvout

    _msd, я новичек в кодинге, не подскажете, как эти строки в ардуину запихнуть? не врублюсь куда функцию вставлять, при компилировании пишет "return-statement with a value, in function returning 'void' "

  5. #5
    Пользователь
    Регистрация
    07.10.2011
    Сообщений
    23
    Вес репутации
    166

    По умолчанию 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); 
    }

  6. #6
    Пользователь
    Регистрация
    03.11.2011
    Сообщений
    27
    Вес репутации
    166

    По умолчанию Re: arduino-tvout

    Спасибо, уже правда вывел. Только почему бы не писать инт фриирам вообще до сетапа, а в лупе как раз выводит в порт значение, когда надо?

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •