13 Kasım 2013 Çarşamba

EasyPic Fusion v7 320x240px TFT ile Osiloskop

  Merhaba arkadaşlar bugün sizlerle yeni bir proje paylaşacağım.Bu projeyi Ö.Faruk Özgüven
hocam ile birlikte gerçekleştirdik.Hocama çok teşekkür ederim.Bu projede EasyPic Fusion v7 geliştirme kitini kullandık.EasyPic Fusion v7 kiti PIC32MX795F512L işlemcisine sahiptir.Bu kit üzerinde 320x240px TFT ekran bulunmaktadır. Projemizde TFT ekran üzerinde bir grafik oluşturarak osiloskop yaptık. TFT'nin pic32 ile bağlantıları belirli pinler üzerinden yapılmıştır. EasyPic Fusion v7 kitinde analog giriş birimi de mevcuttur.Bize düşen ise sadece programı yazmak ve  pic32 işlemcimizi programlayıp kiti çalıştırmaktır.
   PIC32MX795F512L'nin pin konfigürasyonu aşağıdadır.
             
                   

  Programı mikroc ile yazdık.
//////
#include "resources.h"


void Init() {
  AD1PCFG = 0xFFFE;            // Configure AN pins as digital I/O
  JTAGEN_bit = 0;              // Disable JTAG
  TFT_BLED_Direction = 0;      // Set TFT backlight pin as output
  TFT_Set_Default_Mode();
  TFT_Init_ILI9341_8bit(320,240);
  TFT_BLED = 1;                // Turn on TFT backlight
  TRISB0_bit = 1;              // Set PORTB.B0 as input
}

void DrawFrame(){
  TFT_Fill_Screen(CL_WHITE);
  TFT_Set_Pen(CL_BLACK, 2);
}
void Draw1(){
  TFT_Set_Pen(CL_RED, 3);
  TFT_Line(30, 230, 300, 230); //girilen iki(x,y) noktası arasına çizgi çizer
  TFT_Line(30, 230, 30, 10);
  TFT_Set_Font(&Verdana12x13_Regular, CL_BLUE, FO_HORIZONTAL);
  TFT_Write_Text("3.3-", 7, 3);
  TFT_Write_Text("3 -", 16, 23);
  TFT_Write_Text("2.7-", 7, 43);
  TFT_Write_Text("2.4-", 7, 63);
  TFT_Write_Text("2.1-", 7, 83);
  TFT_Write_Text("1.8-", 7, 103);
  TFT_Write_Text("1.5-", 7, 123);
  TFT_Write_Text("1.2-", 7, 143);
  TFT_Write_Text("0.9-", 7, 163);
  TFT_Write_Text("0.6-", 7, 183);
  TFT_Write_Text("0.3-", 7, 203);
  TFT_Write_Text("0 -", 16, 223);
  
}

void main() {
  unsigned long Y,Z,x;
  Init();
  ADC1_Init();                 

  do {
     DrawFrame();
     Draw1();
    for(x=30;x<320;x++) {
    Y = ADC1_Get_Sample(0);//ADC modülünün 0.kanalını okur Y değişkenine atar.
    delay_ms(5);
    Z= ADC1_Get_Sample(0);//ADC modülünün 0.kanalını okur Z değişkenine  atar.
    TFT_Line(x,(230-Y/4.654),x+1,(230-(Z/4.654)));
    }
  } while(1);
}

//////
  Programımız da bu şekildedir.
  Projemizin çalışır hali aşağıdadır.

   İlgilenen arkadaşlara kolay gelsin.Başarılar dilerim...


Hiç yorum yok:

Yorum Gönder