Picproje Elektronik Sitesi

SERBEST BÖLGE => Programlama ve Algoritma => Konuyu başlatan: armsistem - 16 Kasım 2013, 13:47:41

Başlık: 4 basamaklı sayı
Gönderen: armsistem - 16 Kasım 2013, 13:47:41
Arkadaşlar merhaba ; uart üzerinden 4 basamaklı sayı gönderme konusunda kafam karıştı. 

- Butona her basıldığında işlemci +1 sayıyor --> 1...3...6...9 , mesala değer 9 ise '0009' şeklinde göndermem lazım.--> 10.....50....79.... olduğunda 0079 devam edip gidiyor. Bu işlem nasıl bir mantık yürüterek yapabilirim.
Başlık: Ynt: 4 basamaklı sayı
Gönderen: mistek - 16 Kasım 2013, 13:58:00
Alıntı yapılan: armsistem - 16 Kasım 2013, 13:47:41
Arkadaşlar merhaba ; uart üzerinden 4 basamaklı sayı gönderme konusunda kafam karıştı. 

- Butona her basıldığında işlemci +1 sayıyor --> 1...3...6...9 , mesala değer 9 ise '0009' şeklinde göndermem lazım.--> 10.....50....79.... olduğunda 0079 devam edip gidiyor. Bu işlem nasıl bir mantık yürüterek yapabilirim.

Uarttan printf ile mi gönderiyorsunuz?
Başlık: Ynt: 4 basamaklı sayı
Gönderen: pea - 16 Kasım 2013, 14:00:06
%04d parametresi ile 4 basamaklı, solu 0larla doldurulmuş decimal sayı yazarsınız.
Örnek: printf ("Sayılan deger: %04d \n", 79);
Alınan çıktı: "Sayılan deger: 0079" olur.
Başlık: Ynt: 4 basamaklı sayı
Gönderen: Tagli - 16 Kasım 2013, 14:02:10
Alıcı taraf ASCII olarak mı yoksa binary olarak mı değerlendirecek bu sayıyı? Alıcı taraf bir seri port terminali mi yoksa senin yazdığın bir program mı?
Başlık: Ynt: 4 basamaklı sayı
Gönderen: armsistem - 16 Kasım 2013, 14:05:45
Alıntı yapılan: Tagli - 16 Kasım 2013, 14:02:10
Alıcı taraf ASCII olarak mı yoksa binary olarak mı değerlendirecek bu sayıyı? Alıcı taraf bir seri port terminali mi yoksa senin yazdığın bir program mı?

Benim yazdığım bir program sayıyı stringe çevirerek gönderiyorum , alıcı programda bakıyor 12 basamaklı bir sayı görmesi lazımkı ona göre bölüp parçalaması lazım.

mesaj birleştirme:: 16 Kasım 2013, 14:06:53

Alıntı yapılan: pea - 16 Kasım 2013, 14:00:06
%04d parametresi ile 4 basamaklı, solu 0larla doldurulmuş decimal sayı yazarsınız.
Örnek: printf ("Sayılan deger: %04d \n", 79);
Alınan çıktı: "Sayılan deger: 0079" olur.

Sağolasın printf ile tür dönüşümü yapıp göndermem gerekiyor dimi.
Başlık: Ynt: 4 basamaklı sayı
Gönderen: selimkoc - 16 Kasım 2013, 14:09:28
void basamakHesapla(int deger)
{
     basamak[0]=deger/1000;
     basamak[1]=(deger%1000)/100;
     basamak[2]=(deger%100)/10;
     basamak[3]=(deger%10);
}

bu fonksiyonla int tipindeki değişkenin basmaklarına ayırmış olursun her basamağın değerini ayrı ayrı gönderebilirsin.
Başlık: Ynt: 4 basamaklı sayı
Gönderen: armsistem - 16 Kasım 2013, 15:06:19
Alıntı yapılan: selimkoc - 16 Kasım 2013, 14:09:28
void basamakHesapla(int deger)
{
     basamak[0]=deger/1000;
     basamak[1]=(deger%1000)/100;
     basamak[2]=(deger%100)/10;
     basamak[3]=(deger%10);
}

bu fonksiyonla int tipindeki değişkenin basmaklarına ayırmış olursun her basamağın değerini ayrı ayrı gönderebilirsin.


Hocam 15 değeri gönderirsem 0015 mi olacak ?

mesaj birleştirme:: 16 Kasım 2013, 15:15:02

Evet hocam denedim ol

        {
            int t0,t1,t2,t3;
            t0 =15/1000;
            t1 = (15 % 1000) / 100;
            t2 = (15 % 100) / 10;
            t3 = (15 % 10) ;
            MessageBox.Show(t0.ToString());
            MessageBox.Show(t1.ToString());
            MessageBox.Show(t2.ToString());
            MessageBox.Show(t3.ToString());
           
        }