CCS C uart hatası

ibrahimcelik

Kıdemli Üye
Katılım
31 Ocak 2021
Mesajlar
1,087
merhaba esp8266 gelen komuta göre 16f877 de ki pinleri uart ile kontrol etmeye çalışıyorum esp8266 0:255 gönderiyor ama veri kısmına 0:255 yazdığım zaman kod derlenmiyor sorunu nasıl çözebilirim.
 

Ekler

  • HATA.png
    HATA.png
    101.4 KB · Görüntüleme: 116
char tipli bir sabiti '0:255' diye tanımlamışsın. Bu geçerli bir char sabiti değil. Görüntülenebilir ASCII kodlardan birini kullanabilirsin 'U' veya kontrol karakterlerinden birini gönderebilirsin '\r'
 
Konu ile alakası olmayan bir şey sormak istiyorum. Ben pic ile çoook eskiden uğraşmıştım. Proton ve brenner programlayıcı kullanıyordum. Elimde hala yıllanmış picler var. Günümüzde pic tarafında hala işler program yaz sonra hex yükle şeklindemi ilerliyor.
 
Konu ile alakası olmayan bir şey sormak istiyorum. Ben pic ile çoook eskiden uğraşmıştım. Proton ve brenner programlayıcı kullanıyordum. Elimde hala yıllanmış picler var. Günümüzde pic tarafında hala işler program yaz sonra hex yükle şeklindemi ilerliyor.
Ben de brenner8 kulaniyorum evet hala aynı şekilde program yazıp brenner8 ile hex yüklüyorum zaten picler de eski benim
 
Aslında esp8266 da kullanılan bir cloud yapının Arduino ide de atmegalar ile haberleşirken kullandığı bir veri bu veriyi nerden gördün dersen abi usb-ttl ile putty üzerinde görüntüledim
O herhalde IDE nin kullandığı bir gösterim şekli, C/C++ dilinde tanımlı olan bir yapı değil.
 
'0' ':' '2' '5' '5' gönderiyo olabilir mi. Böyle ise o veri tipiyle bunu okuyamazsınız. Data[0]=='0' olarak yazmankz gerekir. bunum içinde her kesmede dizinin indisini arttırıp yeni gelen datayı o indise koymalısın
 
Mesela Putty ekranında (abc) görünüyorsa bu 3 tane char değişkeni demektir işlemci ile bunu okumanız tek yolu, karakter karakter yani tek tek okumaktır. 0:255 verisi 8bitlik haberleşmede tek karakter olarak değerlendirelemez. 'D' verisi putty ekranında nasıl görünüyor?
 
Mesela Putty ekranında (abc) görünüyorsa bu 3 tane char değişkeni demektir işlemci ile bunu okumanız tek yolu, karakter karakter yani tek tek okumaktır. 0:255 verisi 8bitlik haberleşmede tek karakter olarak değerlendirelemez. 'D' verisi putty ekranında nasıl görünüyor?
Hiç denemedim hocam kapalı bir sistemi Arduino yerine pic mikrodenetleyiciyi ile kullanmaya çalışıyorum şuan
 
Putty kullanmadım ama ayarlarda mutlaka vardır. Gelen veriyi karakter olarak değil de puttu ekranına hex olarak yazdırmasını sağlarsan gelen veri hakkında daha net bilgi sahibi olursun. Ya da bir lojik analizör edinip verileri daha detaylı incelersen çok rahat edersin.
 
.. data=='0:255' .. gibi C de char, int8 tipi görmedim, tek byte olması gerekli '0' gibi fakat data=="0:255" gibi(çift tırnaklı) düşüncen var ise karakter katarı bu da memcmp kullanmak gerekir, burada getc kullanmışsın tek bir bayt diye memcmp kullanamazsın diye düşünüyorum.

data==(int8)0x00 , data==(int8)0xFF, data==(int8)0x39, data==(int8)'9' gibi kullanıma izin verir.

C yazılım kurallarına bakman gerekiyor.

not: memcmp kullanımı:
if (memcmp((char *) data, (char *)"0:255", 5) == 0)
{

}
 
hex şeklinde gelen veri bu şekilde
25262 eklentisine bak
7 bayt geliyor , bunları karakter katarına ekleyip bir paket yapman lazım data sonunu bulmak için karakter timeout veya gelen karakter \n ve bir önceki \r mi diye kontrol edebilirsin tavsiyem karakter timeout olarak kontrol etmen, gelen 7 karakter paketi de if ile karşılaştırmak istersen de memcmp metodunu yada if icinte tek te 7 karakteride karşılaştırabilirsin.
 

Forum istatistikleri

Konular
7,214
Mesajlar
122,160
Üyeler
2,915
Son üye
khalid

Son kaynaklar

Son profil mesajları

Freemont2.0 wrote on herbokolog's profile.
nick iniz yakıyor
:D
Freemont2.0 wrote on posta's profile.
Merhabalar :)
az bilgili çok meraklı
Prooffy wrote on semih_s's profile.
Merhaba, sizden DSO2C10 hakkında bilgi rica ettim. Yanıtlarsanız sevinirim...
Unal wrote on taydin's profile.
Timur Bey, Arduino kontrollü bir akü şarj cihazı yapmaya çalışıyorum. Aklımdaki fikri basit bir çizim olarak konu açmıştım. Özellikle sizin fikirlerinizi çok önemsiyorum.
Back
Top