0
#include "io430.h"
void kucuktenBuyuge(int); // Küçükten büyüðe sayar.
void buyuktenKucuge(int); // Buyukten kucuge sayar.
void sayiGoster(int); // O anki sayýyý displayde gösterir.
void bekle(void); // Sayýlar arasý bekleme.
void main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
int a=0;
P1DIR = 0xFF; // P1 çýkýþ olarak ayarlandý.
P2DIR = 0x00;
P1OUT = 0x86; // 0 sayýsý displaye basýldý.
while(1) // Sonsuz döngü.
{
if(!(P2IN & 0x01)){
kucuktenBuyuge(a); // Fonksiyonlar çaðrýlýyor.
a++;
if(a%10=0){
a=0;}
}
if(!(P2IN & 0x02)){
buyuktenKucuge(a);
a--;
if((a+2)%2=0){
a=9;
}
}
}
}
void kucuktenBuyuge(int number)
{
sayiGoster(number); // O anki sayýyý basmasý için fonksiyonu çaðýrýr.
bekle(); // Bir süre bekle.
}
void buyuktenKucuge(int v_number)
{
sayiGoster(number); // O anki sayýyý basmasý için fonksiyonu çaðýrýr.
bekle(); // Bir süre bekle.
}
void sayiGoster(int sayi)
{
switch(sayi) // Gelen sayý kaç?
{
case 0 : P1OUT = 0xC0; break; // Sayý 0 ise ilgili pinler ayarlanýr.
case 1 : P1OUT = 0xF9; break; // 1
case 2 : P1OUT = 0xA4; break; // 2
case 3 : P1OUT = 0xB0; break; // 3
case 4 : P1OUT = 0x99; break; // 4
case 5 : P1OUT = 0x92; break; // 5
case 6 : P1OUT = 0x82; break; // 6
case 7 : P1OUT = 0xF8; break; // 7
case 8 : P1OUT = 0x80; break; // 8
case 9 : P1OUT = 0x90; break; // 9
default : P1OUT = 0x86; break; // Hata oluþtu, displayde 'E' harfini göster.
}
}
void bekle(void)
{
long int delay;
for(delay = 0 ; delay < 100000 ; delay++); // Hiçbir iþlem yapmadan bekle.
}