GLCD farklı bitmap basma

sitemdepresif

Yeni Üye
Katılım
4 Ocak 2021
Mesajlar
4
Merhaba projemde GLCD'de bir çıktı aldıktan sonra diğerine geçmesini istiyorum fakat ilkini gösterip orada duruyor.

C:
void main()
{

   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_psp(PSP_DISABLED);
   setup_spi(FALSE);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   set_tris_a(0x00); // A portlari cikis ayarlandi.
   set_tris_c(0b11000000); // C portlari RS232 kullanimina dikkat edilerek cikis/giris olarak ayarlandi.
   glcd_init(on); // GLCD aktif edildi.
   delay_ms(100); // Bekleme suresi
   logoyaz(); // Logo yazma fonksiyonu


}
void bitmapyaz()
{


      int a=0;
      int b=0;


      for(i=0;i<64;i+=8)
      {
         for(j=0;j<128;j++)
         {
            for(k=0;k<8;k++)
            {
               if(bit_test(l1[syc],k))
               {
                  glcd_pixel(a+j,b+i+k,ON);

               }
            }
            syc++;
         }
      }
    
      glcd_init(off);

      glcd_init(on);
      int x=0;
      int y=0;
      syc=0;

      for(i=0;i<64;i=8)
      {
         for(j=0;j<128;j++)
         {
            for(k=0;k<8;k++)
            {
               if(bit_test(logo2[syc],k))
               {
                  glcd_pixel(x+j,y+i+k,ON);

               }
            }
            syc++;
         }
      }
      glcd_init(off);
   }
}
 
Son düzenleme:
Bu hangi işlemci? Arduino mu?
 
İlk resimi sorunsuz gösteriyorsa main deki son 3 satırı sonsuz döngü içine alman yeterli.

Kod:
while(true)
{
       glcd_init(on); // GLCD aktif edildi.
       delay_ms(100); // Bekleme suresi
       logoyaz(); // Logo yazma fonksiyonu
}
 
LogoYaz kısmı tam doğru çalışmıyor anlaşılan.
Algoritma iyi değil ama kodunda bariz bir hata göremedim.
glcd_init lerden sonra biraz bekleme koymayı dene. delay_ms(100) gibi.
 
LogoYaz kısmı tam doğru çalışmıyor anlaşılan.
Algoritma iyi değil ama kodunda bariz bir hata göremedim.
glcd_init lerden sonra biraz bekleme koymayı dene. delay_ms(100) gibi.
Evet fonksiyonlarda sorun var sanırım. logoyaz gibi başka bir fonksiyon tanımlayınca oluyor sıra sıra fakat aynı fonksiyon içinde sadece tek görüntü elde edebiliyorum.
 
Döngünün logoyaz fonksiyonunu komple kapsaması gerekiyor, yoksa bir kere tuş soruyor ve bir daha da sormuyor.

Yalnız programla ilgili de bazı eleştirilerim var. Çok özensiz ve dağınık yazıldığı için takip etmesi son derece zor. Şu kurallara dikkat edersen daha iyi programlar yazabilirsin:

  • İç içe giren kod bloklarını belli sayıda boşluk kadar sağa kaydır.

C:
// okunmasi ve takip edilmesi cok zor
for (i = 0; i < 8; ++i)
{
for (j = 0; j < 8; ++j)
{
for (k = 0; k < 8; ++k)
{
birseyler_yap();
}
}
}

// bu daha kolay anlasiliyor
for (i = 0; i < 8; ++i)
{
    for (j = 0; j < 8; ++j)
    {
        for (k = 0; k < 8; ++k)
        {
            birseyler_yap();
        }
    }
}

  • Operatörlerden, virgüllerden ve keywordlerden sonra bir boşluk bırak

C:
// okunmasi ve hata varsa gormek cok zor
for(i=0;i<8;++i){if(flag==0)flag_is_set();}

// simdi okunmasi daha kolay
for (i = 0; i < 8; ++i)
{
    if (flag == 0)
    {
        flag_is_set();
    }
}

  • Belli bir düzen ve simetri ile kod yaz
C:
// cok daginik ve ozensiz yazilan bir kod. Adeta
// su lanet seyi bitireyim de kurtulayim dusuncesi ile yazilmis.
int   main(   )
    {

            if (flag = 0)
            {
                            birseyler_yap()     ;

            
            
            }
        
        
        ilk_is()  ;
                       ikinci_is  ();

return 0;   
}

// bu daha duzgun ve ozenli
int main()
{
    if (flag = 0)
    {
        birseyler_yap();
    }
        
    ilk_is();

    ikinci_is();

    return 0;   
}
 
Mesela Uluslararsı Arap Saçı C kodu yarışmasında adam şöyle bir uçak simulatör kodu geliştirmiş. Kod derlenip çalışıyor da. Ama bunun nasıl çalıştığın anlamak için sence ne kadar zaman harcaman lazım? :cheeky5:

C:
#include                                     <math.h>
#include                                   <sys/time.h>
#include                                   <X11/Xlib.h>
#include                                  <X11/keysym.h>
                                          double L ,o ,P
                                         ,_=dt,T,Z,D=1,d,
                                         s[999],E,h= 8,I,
                                         J,K,w[999],M,m,O
                                        ,n[999],j=33e-3,i=
                                        1E3,r,t, u,v ,W,S=
                                        74.5,l=221,X=7.26,
                                        a,B,A=32.2,c, F,H;
                                        int N,q, C, y,p,U;
                                       Window z; char f[52]
                                    ; GC k; main(){ Display*e=
 XOpenDisplay( 0); z=RootWindow(e,0); for (XSetForeground(e,k=XCreateGC (e,z,0,0),BlackPixel(e,0))
; scanf("%lf%lf%lf",y +n,w+y, y+s)+1; y ++); XSelectInput(e,z= XCreateSimpleWindow(e,z,0,0,400,400,
0,0,WhitePixel(e,0) ),KeyPressMask); for(XMapWindow(e,z); ; T=sin(O)){ struct timeval G={ 0,dt*1e6}
; K= cos(j); N=1e4; M+= H*_; Z=D*K; F+=_*P; r=E*K; W=cos( O); m=K*W; H=K*T; O+=D*_*F/ K+d/K*E*_; B=
sin(j); a=B*T*D-E*W; XClearWindow(e,z); t=T*E+ D*B*W; j+=d*_*D-_*F*E; P=W*E*B-T*D; for (o+=(I=D*W+E
*T*B,E*d/K *B+v+B/K*F*D)*_; p<y; ){ T=p[s]+i; E=c-p[w]; D=n[p]-L; K=D*m-B*T-H*E; if(p [n]+w[ p]+p[s
]== 0|K <fabs(W=T*r-I*E +D*P) |fabs(D=t *D+Z *T-a *E)> K)N=1e4; else{ q=W/K *4E2+2e2; C= 2E2+4e2/ K
 *D; N-1E4&& XDrawLine(e ,z,k,N ,U,q,C); N=q; U=C; } ++p; } L+=_* (X*t +P*M+m*l); T=X*X+ l*l+M *M;
  XDrawString(e,z,k ,20,380,f,17); D=v/l*15; i+=(B *l-M*r -X*Z)*_; for(; XPending(e); u *=CS!=N){
                                   XEvent z; XNextEvent(e ,&z);
                                       ++*((N=XLookupKeysym
                                         (&z.xkey,0))-IT?
                                         N-LT? UP-N?& E:&
                                         J:& u: &h); --*(
                                         DN -N? N-DT ?N==
                                         RT?&u: & W:&h:&J
                                          ); } m=15*F/l;
                                          c+=(I=M/ l,l*H
                                          +I*M+a*X)*_; H
                                          =A*r+v*X-F*l+(
                                          E=.1+X*4.9/l,t
                                          =T*m/32-I*T/24
                                           )/S; K=F*M+(
                                           h* 1e4/l-(T+
                                           E*5*T*E)/3e2
                                           )/S-X*d-B*A;
                                           a=2.63 /l*d;
                                           X+=( d*l-T/S
                                            *(.19*E +a
                                            *.64+J/1e3
                                            )-M* v +A*
                                            Z)*_; l +=
                                            K *_; W=d;
                                            sprintf(f,
                                            "%5d  %3d"
                                            "%7d",p =l
                                           /1.7,(C=9E3+
                              O*57.3)%0550,(int)i); d+=T*(.45-14/l*
                             X-a*130-J* .14)*_/125e2+F*_*v; P=(T*(47
                             *I-m* 52+E*94 *D-t*.38+u*.21*E) /1e2+W*
                             179*v)/2312; select(p=0,0,0,0,&G); v-=(
                              W*F-T*(.63*m-I*.086+m*E*19-D*25-.11*u
                               )/107e2)*_; D=cos(o); E=sin(o); } }
 
Bu arada kullandığın grafik LCD nedir? Bir de PIC devresini kendin mi kurdun yoksa hazır bir PIC geliştirme kartı mı kullanıyorsun? Test düzeneğinin de resmini koyarsan başkalarına da fikir verir.
 

Çevrimiçi personel

Forum istatistikleri

Konular
6,952
Mesajlar
118,755
Üyeler
2,824
Son üye
selocan32

Son kaynaklar

Son profil mesajları

hakan8470 wrote on Dede's profile.
1717172721760.png
Dedecim bu gul mu karanfil mi? Gerci ne farkeder onu da anlamam. Gerci bunun anlamini da bilmem :gulus2:
Lyewor_ wrote on hakan8470's profile.
Takip edilmeye başlanmışım :D ❤️
Merhaba elektronik tutsakları...
Lyewor_ wrote on taydin's profile.
Merhabalar. Elektrik laboratuvarınız varsa bunun hakkında bir konunuz var mı acaba? Sizin laboratuvarınızı merak ettim de :)
Lyewor_ wrote on taydin's profile.
Merhabalar forumda yeniyim! Bir sorum olacaktı lcr meterler hakkında. Hem bobini ölçen hemde bobin direnci ölçen bir lcr meter var mı acaba?
Back
Top