15 Nisan 2015 Çarşamba

MSP430 G2553 7 Segment Display Code and Running




#include <msp430.h>

void kucuktenBuyuge(void); // Küçükten büyüğe sayar.
void buyuktenKucuge(void); // Büyükten küçüğe sayar.
void sayiGoster(int); // O anki sayıyı displayde gösterir.
void bekle(void); // Sayılar arası bekleme.
int i;
long int delay;
void main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;

  P1DIR = 0xFF; // P1 çıkış olarak ayarlandı.
  P1OUT = 0x3F; // 0 sayısı displaye basıldı.
  P1OUT = 0x00; // 0 sayısı displaye basıldı.
  P1OUT = 0x86; // 0 sayısı displaye basıldı.


  while(1) // Sonsuz döngü.
  {
    kucuktenBuyuge(); // Fonksiyonlar çağrılıyor.
    buyuktenKucuge();
  }
}

void kucuktenBuyuge(void)
{

  for (i = 0 ; i < 9 ; i++) // 0'dan 9'a kadar sayar.
  {
    sayiGoster(i); // O anki sayıyı basması için fonksiyonu çağırır.
    bekle(); // Bir süre bekle.
  }
}

void buyuktenKucuge(void)
{

  for (i = 9 ; i > 0 ; i--) // 9'dan 0'a kadar sayar.
  {
    sayiGoster(i); // Sayının basılması için fonksiyon çağırır.
    bekle(); // Bir süre bekle.
  }
}

void sayiGoster(int sayi)
{
  switch(sayi) // Gelen sayı kaç?
  {
    case 0 : P1OUT = 0x3F; break; // Sayı 0 ise ilgili pinler ayarlanır.
    case 1 : P1OUT = 0x86; break; // 1
    case 2 : P1OUT = 0x5B; break; // 2
    case 3 : P1OUT = 0xCF; break; // 3
    case 4 : P1OUT = 0x66; break; // 4
    case 5 : P1OUT = 0xED; break; // 5
    case 6 : P1OUT = 0xFD; break; // 6
    case 7 : P1OUT = 0x07; break; // 7
    case 8 : P1OUT = 0xFF; break; // 8
    case 9 : P1OUT = 0xE7; break; // 9
    default : P1OUT = 0x0D; break; // Hata oluştu, displayde 'E' harfini göster.
  }
}

void bekle(void)
{

  for(delay = 0 ; delay < 20000 ; delay++); // Hiçbir işlem yapmadan bekle.
}
















Hiç yorum yok:

Yorum Gönder

Ros2 çalışmaları

 1) Her saniye yazı yazdırma. Eklediğim kod öncelikle Hello Cpp Node yazdıracak ardınca Hello ekleyecek. benim .cpp dosyamın adı my_first_no...