Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

parity değiştirme

Başlatan frederic, 11 Eylül 2013, 16:06:33

frederic

Merhabalar, bildiğiniz üzere set_uart_speed fonksiyonu ile online olarak programın herhangi bir bölümünde baudrate değerini değiştirebiliyoruz. Ben bunun yanında birde parity ayarını değiştirmek istiyorum, bunun için bildiğiniz özel bir fonksiyon varmıdır yoksa dolaylı yollaramı başvurmak gerekecek ?

frederic


frederic

Register düzeyine inmek lazım sanırım bu iş için, hazır fonksiyon varmıdır diye baktım fakat yokmuş, yada ben bulamadım.

ErsinErce

parity için frame i uzatmayı unutmayın

/* Returns 0 if Parity ODD
 * Returns 1 if parity EVEN */
unsigned char check_parity(unsigned char dt){
    dt ^= ( dt << 4 ) | ( dt >> 4 );
    dt ^= dt >> 2;
    dt ^= dt >> 1;
    return dt & 1;
}

frederic

Ersin hocam ilginiz için teşekkür ederim, verdiğiniz kodu anlamadım kusura bakmayın. Nasıl kullanıcaz bu kodu biraz daha açarmısınız ?

ErsinErce

#5
pici 9 bit transfere ayarlıyorsunuz ve 9.bit parity oluyor
TX9D bitiydi dogru hatırlıyorsam (8E1,8O1 için)

göndereceğiniz char ı yukarıdaki fonksiyona vericeksiniz oda size odd veya even olduğunu söyleyen dönüş vericek

odd parity kullanıyorsanız odd döndüyse 1 yazıcaksınız değilse 0
even kullanıyorsanız even döndüyse 1 değilse 0

mark(sürekli 1) ve space(sürekli 0) modlarıda var kullanılmıyor pek ama bilginiz olsun yinede

frederic

Anladım şimdi hocam eline sağlık, sağolasın.