Android ile kontrol yardım talebi

Başlatan protezdiyot, 28 Aralık 2015, 19:52:33

protezdiyot

Merhaba, android ile sıcaklık ve nem bilgisi okumak istiyorum. Elimde 16f628a var ve ccs c kullanacağım.
Ustteki bilgi ilerisi için ama ben şuan yaşadığım sıkıntıyı öncelikle aşmak istiyorum. Android ile yapacağım kontrol için elimde bluetoothchat adıyla yazılmış kodlar var ve onların üzerinden oynama yaparak ilerlemek istiyorum yalnız sıkıntım şu; android stüdyo ile bu dosyayı açınca kodlar geliyor yalnız ben programda düzenleme yapmak için  butonları göremiyorum. Telefon ekranında nasıl görünecek onu göremiyorum bu proje dosyasında. Ne yapmam lazım?

protezdiyot


protezdiyot

3 gündür sabahtan akşama kadar uğraştım. Yardımcı olabilecekler varsa çok mutlu olurum.

MrDarK

Android programlama için ne kullanıyorsun ?
Picproje Eğitim Gönüllüleri ~ MrDarK

protezdiyot


MrDarK

App Inventor ile hızlıca istediğin uygulamayı yazabilirsin. O yüzden linkte verdiğin öneri gibi AppInventor kullanmanı öneriyorum.
Picproje Eğitim Gönüllüleri ~ MrDarK



protezdiyot


protezdiyot

#9
]tekrar merhaba; Bu çalışmamda artık led yakıp söndürebiliyorum. Ama ilerledikçe değişik sıkıntılar ortaya çıkıyor. Şuan iki sıkıntım var.
1.si Ben 1. butona telefondan bastığımda ekranıma sürekli led1 yandı yazısı geliyor. Bu sorunu if ve swich case kullandım ama çözemedim.
(Led1 yandı yazısını pic gönderiyor.)
2. sorun ben ikinci butona bastığımda telefonun ekranın temizlenip yeni yazıyı ekrana basmasını istiyorum ama bu da olmuyor.Eski yazıyı alta göderip yeni yazıyı ekrana basıyor.
3. pic bir süre çalıştıktan sonra donuyor. Tepki vermiyor.
4.Büyük A ve Büyük B harflerini swich case de tanımıyor.Ben hem küçük hemde büyük 'a' harfini tanımasını istiyorum.
Yardımcı olabilecek arkadaşlara şimdiden teşekkürler... :)
#include <bluetoothbenim.h>
char veri;
#int_rda
void kesme()
{
disable_interrupts(int_rda);
//if(kbhit){}
veri=getc();


}

void main()
{
//setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); 
setup_timer_1(t1_disabled);
setup_timer_2(t2_disabled,0,1);
setup_comparator(nc_nc_nc_nc);
setup_vref(false);
 enable_interrupts(global);

set_tris_a(0x00);


while(true)
   {

 enable_interrupts(int_rda);
    
    switch (veri)
    {case 'a' || 'A':
   delay_ms(50);
   output_low(pin_a3);
   output_low(pin_b0);
   output_high(pin_a2);
   delay_ms(250);
   printf("\fLed1 yandi");
    
   break;
    case 'b' ||'B':
      
      delay_ms(50);
      output_low(pin_a2);
      output_low(pin_b0);
      output_high(pin_a3);
      delay_ms(250);
      printf("\fled2 yandi");
      break; 
    
    }    
     
  
   if(veri=='c'||veri=='C')
   {   
   output_low(pin_a2);
   output_low(pin_a3);
   output_high(pin_b0);
   delay_ms(250);
   printf("\fled3 yandi");
      
   }
   }

}




Abdullahtekin

Seri porttan aldığınız verileri toupper işlemine tabi tutun. Bu sayede buyuk kucuk harf sorununuz kalmaz.
Komutları karakter olarak gönderip almak ileride yetersiz kalabilir. Strcmp komutunu araştırın. Ben bu yöntemi daha çok kullanıyorum.

protezdiyot

@Abdullahtekin teşekkürler geri dönüşünüz için. İki işlem içinde birer örnek kod  verebilir misiniz?
Ayrıca gördüğünüz gibi ekrana sürekli data geliyor. Bunu engellemek istiyorum. Yani bir defa ekrana led1 yandı verisi göndersin ve dursun. Bunu nasıl sağlayabilirim?

MrDarK

#12
Alıntı yapılan: protezdiyot - 12 Mart 2016, 19:08:19
@Abdullahtekin teşekkürler geri dönüşünüz için. İki işlem içinde birer örnek kod  verebilir misiniz?
Ayrıca gördüğünüz gibi ekrana sürekli data geliyor. Bunu engellemek istiyorum. Yani bir defa ekrana led1 yandı verisi göndersin ve dursun. Bunu nasıl sağlayabilirim?

Ekrana sürekli veri gelmesini durdurur.

#include <bluetoothbenim.h>
char veri;
#int_rda
void kesme()
{
veri=getc();
}

void main()
{
setup_comparator(nc_nc_nc_nc);
setup_vref(false);
enable_interrupts(int_rda);
enable_interrupts(global);

set_tris_a(0x00);

while(true)
   {

 
    
    switch (veri)
    {case 'a' || 'A':
   delay_ms(50);
   output_low(pin_a3);
   output_low(pin_b0);
   output_high(pin_a2);
   delay_ms(250);
   printf("\fLed1 yandi");
   veri=0;
   break;

    case 'b' ||'B':
      
      delay_ms(50);
      output_low(pin_a2);
      output_low(pin_b0);
      output_high(pin_a3);
      delay_ms(250);
      printf("\fled2 yandi");
      break; 
      veri=0;    
    }    
     
  
   if(veri=='c'||veri=='C')
   {   
   output_low(pin_a2);
   output_low(pin_a3);
   output_high(pin_b0);
   delay_ms(250);
   printf("\fled3 yandi");
       veri=0;  
   }
   }

}
Picproje Eğitim Gönüllüleri ~ MrDarK

protezdiyot

@MsDark hafta içi çok yoğundum dönemedim. teşekkürler. Veri akışı durdu.
2-3 ve 4. sorum hala yanıt aramaktadır :)

MrDarK

2. sorun Android studio ile kullandığın text box 'ı butona basınca temizlersen çözülmüş olur. Yani TextBox.Text=""; gibi
3. sorun ; Ya rs232 frame error gibi sıkıntılar yaşayabilirsin. Watchdog kullanabilirsin.
4- sorun ; Yeni kodda nasıl yapıldığı görülüyor.

#include <bluetoothbenim.h>
char veri;

#int_rda
void kesme()
{
	veri=getc();
}

void main()
{
	setup_comparator(nc_nc_nc_nc);
	setup_vref(false);
	enable_interrupts(int_rda);
	enable_interrupts(global);

	set_tris_a(0x00);

while(1)
{
	switch (veri)
	{
		case 'A':
		case 'a':
			delay_ms(50);
			output_low(pin_a3);
			output_low(pin_b0);
			output_high(pin_a2);
			delay_ms(250);
			printf("\fLed1 yandi");
			veri=0;
		break;

		case 'B':
		case 'b':
			delay_ms(50);
			output_low(pin_a2);
			output_low(pin_b0);
			output_high(pin_a3);
			delay_ms(250);
			printf("\fled2 yandi");
			veri=0;
		break; 

		case 'C':
		case 'c':
			output_low(pin_a2);
			output_low(pin_a3);
			output_high(pin_b0);
			delay_ms(250);
			printf("\fled3 yandi");
			veri=0;
		break;
	}
}
}
Picproje Eğitim Gönüllüleri ~ MrDarK