Rabu, 09 Juni 2010

Ask : Mengubah string angka menjadi nilai

.
Asker : CJDW dan Lufi
About :
Konversi tipe string (karakter angka) ke nilai (integer,float,char)
Question :
mas gimana cara membaca suatu nilai (smua tipe data baik integer, float, sting dll) dalam dunia USART.?? Kan kalau pake getchar kan fungsi yg cuma menerima sebuah karakter saja.
soalnya aku coba baca nilai 234 misal dari komuter pake USART yg kebaca '4' pake getchar.. gimana caranya? suwun nggih

Too PayZ:
Mikrokontroller AVR ATmega8535 atau uC 8 bit sejenisnya, memiliki buffer komunikasi data UART yaitu register yang bernama UDR. Register UDR ada 2 buah, masing-masing bernilai 8 bit / 1 byte yaitu 1 byte UDR buffer untuk menerima data dan 1 byte UDR buffer untuk mengirim data. Setiap terjadi penerimaan / pengiriman data satu huruf, angka, atau nilai, data ini disimpan di UDR penerima / pengirim. Karena UDR bernilai 1 byte sehingga hanya mampu menerima / mengirim 1 data pada 1 waktu.

Fungsi getchar() sebenarnya membaca data yang tersimpan pada buffer UDR sehingga hanya menerima 1 data ASCII pada satu waktu, oleh sebab itu dibutuhkan memori yang berfungsi sebagai buffer tambahan agar data ASCII yang terbaca satu-satu tersebut bisa diolah dan digabungkan menjadi 1 buah nilai.
Sehingga data '1', '2', '3', '4' akan menjadi 1234 (integer).

Sama seperti pertanyaan pada : Angka pd LCD lebih dari 1 digit
maka akan saya bahas dalam 1 postingan berikut :
Konversi Angka ASCII menjadi nilai

Semoga manfaat ;)

Topik yang Populer