Selamat datang di ForSa! Forum diskusi seputar sains, teknologi dan pendidikan Indonesia.

Welcome to Forum Sains Indonesia. Please login or sign up.

Maret 29, 2024, 07:49:05 PM

Login with username, password and session length

Topik Baru

Artikel Sains

Anggota
Stats
  • Total Tulisan: 139,653
  • Total Topik: 10,405
  • Online today: 231
  • Online ever: 1,582
  • (Desember 22, 2022, 06:39:12 AM)
Pengguna Online
Users: 0
Guests: 195
Total: 195

Aku Cinta ForSa

ForSa on FB ForSa on Twitter

[ASK] Komunikasi Serial

Dimulai oleh frans3q, Agustus 02, 2009, 06:10:37 PM

« sebelumnya - berikutnya »

0 Anggota dan 1 Pengunjung sedang melihat topik ini.

frans3q

#30
@Too Payz
gw uda coba klo skedar I/O pake LED doank ga ada masalah. I/O pake push button switch jg uda lancar.

kirim data serial dah bisa.

mintal source code lengkap nya donk... post d sini aja. biar gw bisa cek bedanya dmn.
ini code yg gw. bener2 polos tapi gagal ga ngirim apa2.
Sorry but you are not allowed to view spoiler contents.
Terimakasih banyak buat tmn2 yg uda nambah IQ saya... :D

frans3q

sebenernya kirim data serial jg masi belom bener, wkt tu nyoba ngirim karakter 'a' doank dari uC k PC gagal mulu ternyata Clock nya, begitu gw turunin dari 11MHz jadi 4Mhz ga ada masalah sama sekali. mungkin ttg clock internal - external d bahas ntar lagi.
Terimakasih banyak buat tmn2 yg uda nambah IQ saya... :D

Too Payz

@Frans3q :
Yang saya jelaskan posting sebelumnya itu sudah mendasar dan sudah menjawab semua pertanyaannya.
Ditambah lagi penjelasan dari Micro, tinggal ditambahkan dan disisipkan sudah bisa seharusnya.
Tapi saya bingung kok masih blum bisa ?   ???
Kutip
sebenernya kirim data serial jg masi belom bener, wkt tu nyoba ngirim karakter 'a' doank dari uC k PC gagal mulu ternyata Clock nya, begitu gw turunin dari 11MHz jadi 4Mhz ga ada masalah sama sekali. mungkin ttg clock internal - external d bahas ntar lagi.
Kalo menggunakan kabel PC ke uC aj gagal gmana yg lainnya ?  ???
Ini harus 100% tidak gagal baru bisa lanjut.
Clock-nya kok d ganti-ganti dari 11MHz ke 4MHz tanpa alasan,..??   ???
Lihat komponen XTALL di boardnya berapa nilainya, itulah nilai Clocknya.
Jadi g bisa trial n error.

Clock pada mikronya tidak masalah hingga 16MHz pun g masalah tinggal CodeVisionAVR-nya saja yang menyesuaikan dengan hardwarenya (XTALL-nya).
Saya rasa Frans3q terlalu terburu-buru,..
Coba cari buku-buku tentang AVR bahasa C dengan CoViAVR.

Hardware, SOftware, Konfigurasi CodeWizzarAVR, pembacaan cara penggunaan library, penulisan C, tipe data, dst.
Kalo dasarnya paham dan kuat, aplikasi apapun akan cepat selesai..
SLAM itu tidak mudah tetapi tidak susah.

;)   ;)   ;)

frans3q

#33
thx Too Payz,(bonus BRP hahaha).
justru krena itu saya bingung. setelah baca2 dari buku, dari forum, tapi begitu praktek gagal. Tolong donk liatin source code yg sy lampirin d spoiler. apa yg salah dari source code nya. isi programnya sesuai kata Too Payz, cuma
while (1)
      {
      // Place your code here
      dt = getchar();
      putchar(dt);
      };

tapi sama sekali ga k kirim balik k PC. saya uda coba tambah delay, sama aja. tetep ga k kirim.

kalau cuma putchar('a'); bisa k kirim k PC.
KutipKalo menggunakan kabel PC ke uC aj gagal gmana yg lainnya ? 
Ini harus 100% tidak gagal baru bisa lanjut.
sbnernya ga buru2. tapi uda 1mggu lebih sy stuck d masalah ini, jd pengen cepet2 beres in masalah Transmit UART ini. soal ny masi bnyk hal lain ttg UART yg belum sy pelajari.

pertanyaan lain yg pending :
1. nemu istilah aneh.
DCD - Data Carrier Detect
DSR - Data Set Ready
DTR - Data Terminal Ready
RTS - Request to Send
CTS - Clear To Send
ada yg tau arti ny apa? RTS CTS ada d komunikasi wireless 802.11, tapi apa UART pake RS232 juga ngirim RTS/CTS ini?

2. ada yg tau cara pake putsf(). puts() dan printf() buat ngirim data pake UART? gw coba gagal semua, yg berhasil cuma pake putchar();
Terimakasih banyak buat tmn2 yg uda nambah IQ saya... :D

arlan_hack

numpang nanyanih...
rs485???? gimanaya... cr pakenya... sy coba pke atmega128 buat ngontrol servo dinamixel ax-12 tp blm ngertinih  >:(

arlan_hack

numpang nanyanih...
rs485???? gimanaya... cr pakenya... sy coba pke atmega128 buat ngontrol servo dynamixel ax-12 tp blm ngertinih  >:(

frans3q

saya jg mo nanya lagi.

misal ny saya ngprogram uC buat menyalakan LED selama 2 detik jika angka 2 di keyboard ditekan.

saya buat program ny spt ini :
x = getchar();
if (x=='2') {PORTA.1 = 1; delay_ms(2000);}

tapi jika saya menekan 2x tombol keyboard secara cepat, maka terjadi queuing. hasil nya LED menyala 4 detik.

bagaimana caranya agar tidak terjadi antrian? jadi jika ada data UART terkirim saat mikrokontroler belum beres memproses yg sebelumnya, maka data tsb d hilangkan. sehingga tidak terjadi penumpukan.

apakah ada port pada AT Mega 8535 yang mengindikasikan apakah mikrokontroler dalam keadaan "Busy" atau tidak?
Terimakasih banyak buat tmn2 yg uda nambah IQ saya... :D

frans3q

Terimakasih banyak buat tmn2 yg uda nambah IQ saya... :D

frans3q

aow.... help donk... ada yg bisa ngasi ide?
Terimakasih banyak buat tmn2 yg uda nambah IQ saya... :D

herlambang

Kutip dari: frans3q pada Agustus 27, 2009, 06:07:00 PM
saya jg mo nanya lagi.

misal ny saya ngprogram uC buat menyalakan LED selama 2 detik jika angka 2 di keyboard ditekan.

saya buat program ny spt ini :
x = getchar();
if (x=='2') {PORTA.1 = 1; delay_ms(2000);}

tapi jika saya menekan 2x tombol keyboard secara cepat, maka terjadi queuing. hasil nya LED menyala 4 detik.

bagaimana caranya agar tidak terjadi antrian? jadi jika ada data UART terkirim saat mikrokontroler belum beres memproses yg sebelumnya, maka data tsb d hilangkan. sehingga tidak terjadi penumpukan.

apakah ada port pada AT Mega 8535 yang mengindikasikan apakah mikrokontroler dalam keadaan "Busy" atau tidak?


Pake buffer dong ^^'
built-in double watchdog! ^^"   *Problem Solved*

jatihisivalley

Kutip dari: arlan_hack pada Agustus 24, 2009, 09:42:52 PM
rs485???? gimanaya... cr pakenya... sy coba pke atmega128 buat ngontrol servo dynamixel ax-12 tp blm ngertinih  >:(

rs485 itu jalur kirim-terima-nya hanya di laksanakan lewat 1 kabel,dengan misal IC MAX485,anda bisa pertama kirim data dulu... setelah itu ganti state MAX485 ke listen .. cari aza datasheet max485.. serial datanya (.. konfigurasi baudrate).. sama dengan serial biasa.. hanya dalam protokol RS485 biasanya ditambahkan field ID.. sehingga kita bisa berkomunikasi dengan device2 tertentu

Kutip dari: frans3q pada Agustus 27, 2009, 06:07:00 PM
x = getchar();
if (x=='2') {PORTA.1 = 1; delay_ms(2000);}
tapi jika saya menekan 2x tombol keyboard secara cepat, maka terjadi queuing. hasil nya LED menyala 4 detik.

bagaimana caranya agar tidak terjadi antrian? jadi jika ada data UART terkirim saat mikrokontroler belum beres memproses yg sebelumnya, maka data tsb d hilangkan. sehingga tidak terjadi penumpukan.

apakah ada port pada AT Mega 8535 yang mengindikasikan apakah mikrokontroler dalam keadaan "Busy" atau tidak?

pertanyaan dulu he :D PORTA.1 = 1 ... kapan 0-nya ?


kuin

Kutip dari: frans3q pada Agustus 06, 2009, 09:53:02 PM
until UDRE gunanya apa ya?? btw UDRE tuh register buat apaan ya??

baca datasheet mikro aja pasti ada plus potongan programnya juga ada.

Neutrino

saya mau nanya bagaimana caranya membuat komunikasi serial pake interupt
jadi kalo si mikro lagi nerima data..maka mikro akan memprioritaskan membaca data dari transmiternya

harapannya agar program mikro ga perlu memasukkan sintaks semacam getchar..

kuin

gak ada yang pakai interup ya? padahal kan lebih mudah dan bisa jalanin program lain selagi menunggu data dari serial diterima.

kalo pakai
getchat();
program jadinya nunggu and berhenti ditempat menunggu kiriman...dari siapa ya?

coba too payz....kamu kan jago....sebagai anak bangsa harus bisa dong.....