• Tidak ada hasil yang ditemukan

Receive Data UART Menggunakan Scanf CodevisionAVR _ WanGReadY

N/A
N/A
Protected

Academic year: 2021

Membagikan "Receive Data UART Menggunakan Scanf CodevisionAVR _ WanGReadY"

Copied!
24
0
0

Teks penuh

(1)

WanGReadY

WanGReadY

ʺ… semangat seniman serta intelektual yang anti keseragaman, berbakat, dan kreatifʺ Chinaʹs Megatrends — Persemaian Artistik dan Intelektual ʺ… semangat seniman serta intelektual yang anti keseragaman, berbakat, dan kreatifʺ Chinaʹs Megatrends — Persemaian Artistik dan Intelektual

Receive Data UART Menggun

Receive Data UART Menggunakan Scanf Codevision

akan Scanf CodevisionA

AVR

VR

DEC

DECEMBEEMBER R 30, 30, 20122012 44 44 COMCOMMENTMENTS S (HTT(HTTPS://WPS://WANGRANGREADYEADY.WORD.WORDPRESPRESS.COS.COM/201M/2012/12/2/12/30/RE30/RECEICEIVE-DAVE-DATTA-UARA-UART- T-MENGGUNAKAN-SCANF-CODEVISIONAVR/#COMMENTS)

MENGGUNAKAN-SCANF-CODEVISIONAVR/#COMMENTS) Untuk menerima data serial

Untuk menerima data serial bisa menggunakanbisa menggunakan getchar().getchar(). Akan tetapi fungsi getchar() ini hanya mampu menerima satu karakterAkan tetapi fungsi getchar() ini hanya mampu menerima satu karakter string. Agar kita bisa menerima data yang lebih kompleks, bisa kita gunakan fungsi

string. Agar kita bisa menerima data yang lebih kompleks, bisa kita gunakan fungsi scanfscanf. Fungsi scanf sendiri ada di library. Fungsi scanf sendiri ada di library stdio.hstdio.h pada codevisionA

pada codevisionAVR. Dengan menggunakan scanf kita VR. Dengan menggunakan scanf kita bisa menerima data string bisa menerima data string atau data angka atau data angka yang dikirim dalam bentukyang dikirim dalam bentuk string.

string. Fungsi scanf ini akan mengembalFungsi scanf ini akan mengembalikan nilai angka dari data angka yang dikirikan nilai angka dari data angka yang dikirim dalam string. Berikut pemisalan programim dalam string. Berikut pemisalan program dalam penggunaan scanf.

dalam penggunaan scanf.

program di atas akan menerima data lalu m

program di atas akan menerima data lalu mengirim lagi lewat UARTengirim lagi lewat UART. Misal mikrokontroler kita koneksikan ke PC. Dari PC kita. Misal mikrokontroler kita koneksikan ke PC. Dari PC kita akan mengirim:

akan mengirim: 20 april 201220 april 2012 , maka mikrokontroler akan me , maka mikrokontroler akan menerima data tersebut danerima data tersebut dalam bentuk tipe data ylam bentuk tipe data yang kita seingang kita seing sebelumnya. variabel

sebelumnya. variabel dayday = 20,= 20, monthnamemonthname = {‘a’ ‘p’ ‘r’ ‘i’ ‘l’},= {‘a’ ‘p’ ‘r’ ‘i’ ‘l’}, yearyear = 2012. Untuk data angka = 2012. Untuk data angka dalam penggunaan scanf ditambahkandalam penggunaan scanf ditambahkan &

& di depannya, misal:di depannya, misal: &day, &year.&day, &year. Dalam program tersebut, mirkokontroler akan mengirim kembali ke PC dengan fungsiDalam program tersebut, mirkokontroler akan mengirim kembali ke PC dengan fungsi printf.printf. Berikut contoh program lengkapnya. Misal saya akan menerima data

Berikut contoh program lengkapnya. Misal saya akan menerima data dari PC, menampilkan data yang diterima lewat LCD, dandari PC, menampilkan data yang diterima lewat LCD, dan mengirim kembali data yang diterima ke

mengirim kembali data yang diterima ke PC.PC. 3 3 1 1 1 1 1 1 13 13 1 1 1 1 1 1 1 1 1 1 ... ... int

int day, year;day, year;

char

char monthname[20];monthname[20];

void

void main(main(voidvoid)) ... ... while while(1)(1) { { scanf

scanf(("%d %s %d""%d %s %d", &day, monthname, &year);, &day, monthname, &year);

printf

printf(("%d %s %d""%d %s %d", day, monthname, year);, day, monthname, year); }

} } }

(2)
(3)

3 1 1 1 13 1 1 1 1 1 1 2 2 2 23 2 2 2 2 2 2 3 3 3 33 3 3 3 3 3 3 4 4 4 43 4 4 4 4 4 4 5 5 5 53 5 5 5 5 5 5 6 6 6 63 6 6 6 6 6 6 7 7 /***************************************************** Chip type : ATmega8535

Program type : Application Clock frequency : 16.000000 MHz Memory model : Small

External SRAM size : 0 Data Stack size : 128

*****************************************************/ #include <mega8535.h>

// Alphanumeric LCD Module functions #asm

.equ __lcd_port=0x1B ;PORTA #endasm #include <lcd.h> #include <delay.h> #define RXB8 1 #define TXB8 0 #define UPE 2 #define OVR 3 #define FE 4 #define UDRE 5 #define RXC 7

#define FRAMING_ERROR (1<<FE) #define PARITY_ERROR (1<<UPE) #define DATA_OVERRUN (1<<OVR)

#define DATA_REGISTER_EMPTY (1<<UDRE) #define RX_COMPLETE (1<<RXC)

// USART Receiver buffer #define RX_BUFFER_SIZE 8

char rx_buffer[RX_BUFFER_SIZE]; #if RX_BUFFER_SIZE<256

unsigned char rx_wr_index,rx_rd_index,rx_counter; #else

unsigned int rx_wr_index,rx_rd_index,rx_counter; #endif

// This flag is set on USART Receiver buffer overflow bit rx_buffer_overflow;

// USART Receiver interrupt service routine interrupt [USART_RXC] void usart_rx_isr(void) {

char status,data; status=UCSRA; data=UDR;

if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0) {

rx_buffer[rx_wr_index]=data;

if (++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;

if (++rx_counter == RX_BUFFER_SIZE) { rx_counter=0; rx_buffer_overflow=1; }; }; } #ifndef _DEBUG_TERMINAL_IO_

// Get a character from the USART Receiver buffer #define _ALTERNATE_GETCHAR_

#pragma used+

char   getchar(void) {

char data;

(4)
(5)

73 7 7 7 7 7 7 8 8 8 83 8 8 8 8 8 8 9 9 9 93 9 9 9 9 9 9 10 10 10 103 10 10 10 10 10 10 11 11 11 113 11 11 11 11 11 11 12 12 12 123 12 12 12 12 12 12 13 13 13 133 13 13 13 13 13 13 14 14 14 143

if (++rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0; #asm("cli") --rx_counter; #asm("sei") return data; } #pragma used-#endif

// USART Transmitter buffer #define TX_BUFFER_SIZE 8

char tx_buffer[TX_BUFFER_SIZE]; #if TX_BUFFER_SIZE<256

unsigned char tx_wr_index,tx_rd_index,tx_counter; #else

unsigned int tx_wr_index,tx_rd_index,tx_counter; #endif

// USART Transmitter interrupt service routine interrupt [USART_TXC] void usart_tx_isr(void) {

if (tx_counter) {

--tx_counter;

UDR=tx_buffer[tx_rd_index];

if (++tx_rd_index == TX_BUFFER_SIZE) tx_rd_index=0; };

}

#ifndef _DEBUG_TERMINAL_IO_

// Write a character to the USART Transmitter buffer #define _ALTERNATE_PUTCHAR_

#pragma used+

void   putchar(char c) {

while (tx_counter == TX_BUFFER_SIZE); #asm("cli")

if (tx_counter || ((UCSRA & DATA_REGISTER_EMPTY)==0)) {

tx_buffer[tx_wr_index]=c;

if (++tx_wr_index == TX_BUFFER_SIZE) tx_wr_index=0; ++tx_counter; } else UDR=c; #asm("sei") } #pragma used-#endif

// Standard Input/Output functions #include <stdio.h>

// Declare your global variables here unsigned char kata[16];

int day, year;

char monthname[20];

void main(void) {

// Declare your local variables here // Input/Output Ports initialization // Port A initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTA=0x00;

DDRA=0x00;

(6)
(7)

14 14 14 14 14 15 15 15 153 15 15 15 15 15 15 16 16 16 163 16 16 16 16 16 16 17 17 17 173 17 17 17 17 17 17 18 18 18 183 18 18 18 18 18 18 19 19 19 193 19 19 19 19 19 19 20 20 20 203 20 20 20 20 20 20 21 21 21 213 21 21

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTB=0x00;

DDRB=0x00;

// Port C initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00;

DDRC=0x00;

// Port D initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTD=0x00;

DDRD=0x00;

// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=FFh

// OC0 output: Disconnected TCCR0=0x00;

TCNT0=0x00; OCR0=0x00;

// Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer 1 Stopped // Mode: Normal top=FFFFh

// OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off

// Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh

// OC2 output: Disconnected ASSR=0x00;

TCCR2=0x00; TCNT2=0x00; OCR2=0x00;

// External Interrupt(s) initialization // INT0: Off

// INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00;

// USART initialization

// Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On

(8)
(9)

FILED UNDER ELECTRICAL ENGINEERING

44 Responses to Receive Data UART Menggunakan Scanf CodevisionAVR 

fuad says:

 January 8, 2013 at 8:51 pm

misal saya ingin mengirimkan data angka ke mikro dari delphi, cara pengirimannya bgaimana dan terima datanya bagaimana ???

terima kasih Reply

wangready says:

 January 8, 2013 at 9:44 pm

klo d delphi gk tau gan…kirimnya data string gan, cara terimanya ada di post pake scanf… Reply

Irul kutu solder says:  July 18, 2013 at 2:05 pm

pake komponen comport gan.. 21 21 21 22 22 22 223 22 22 22 22 22 22 23 23 23 233 23 23 23 23 23 23 24 24 24 243 24 24 24 24

// USART Mode: Asynchronous // USART Baud rate: 9600 UCSRA=0x00;

UCSRB=0xD8; UCSRC=0x86; UBRRH=0x00; UBRRL=0x67;

// Analog Comparator initialization // Analog Comparator: Off

// Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80;

SFIOR=0x00;

// LCD module initialization lcd_init(16);

// Global enable interrupts #asm("sei")

while (1) {

scanf("%d %s %d", &day, monthname, &year); //terima data UART //---kirim data ke

LCD---lcd_clear(); lcd_gotoxy(0,0);

sprintf(kata,"%d %s %d", day, monthname, year); lcd_puts(kata);

//---printf("%d %s %d", day, monthname, year); //kirim data UART };

(10)
(11)

 jadi setelah mikronya di isi program , misalnya baca adc trus mengirimkan data tsb melalui uart, selanjutnya tinggal buat form pd delphi yg komponennya ada comportnya, baru di buat koding scaning input serial yg di jadiin data integer.slnjutnya terserah agan, apa mau diolah menjadi grafik .dll

maaf, masih nubie gan..hehe Reply

joan says:

 January 9, 2013 at 2:27 am

 bagai mana cara untuk kendali led dan servo melalui uart.

misal jika kirim data ‘1’ led on dan ‘0’ led off. untuk servo jika kirim data 90 maka servo bergerak sebesar 90 derajat. trimakasih

Reply

wangready says:

 January 9, 2013 at 11:13 pm

agar memudahkan dalam menerima data, agan bisa liat post yg ini hps://wangready.wordpress.com/2012/12/30/receive-data-uart-menggunakan-scanf-codevisionavr/. jadi kirim datanya seperti AT command. misal LED 1 SERVO 90.

Reply fuad says:

 January 9, 2013 at 8:11 am

untuk serialnya di seing interupt tidak gan???

 berarti untuk penerimaanya sama dengan tutorial diatas ya??? Reply

wangready says:

 January 9, 2013 at 11:16 pm

gk tau gan, harus interrupt apa enggak. belum ane coba bedain. terakhir coba pake mode interrupt. Reply

asyrofil says:

 January 14, 2013 at 11:36 am

mas ,, mw tnya ni misal kita mw buat perintah dari mikri 1 ke mikro 2,,pake protokol itu gmana mas ?? Reply

wangready says:

 January 14, 2013 at 9:25 pm protokol gmana mksudnya gan?

kalo menurut saya langsung aja pake fungsi printf buat ngirim sama scanf buat nerima….

ato mungkin yg seperti ini gan hps://wangready.wordpress.com/2012/06/25/transmit-data-paket/ Reply

hamdi says:

March 19, 2013 at 6:54 am

gan , mw tanya kalo mw membuat suatu hitungan data tapi datanya di peroleh dari perangkat lain itu gmn ya contoh programnya ,, trims

pake kom usart tapi pake fungsi counter itu bs ga ? Reply

wangready says:

March 20, 2013 at 3:39 am

kalo saya pake fungsi scanf disimpan di while(1), tapi di prosesnya tidak menggunakan delay. saya pernah coba pake delay  jadinya scanfnya ketahan sama delay. Tapi scanf ini metodenya tidak seperti getchar yang menunggu sampai ada data

diterima. pseudo code saya. while(1)

{

scanf(“data1:%d data2:%d”, buffer1, buffer2); proses();

}

dalam aplikasi lain mungkin bisa dimodif dengan getchar() atau read register UDR sesuai kebutuhan aplikasi. maksud agan pake fungsi counter itu bgmana?

(12)
(13)

andi says:

April 8, 2013 at 10:41 am

mau tanya gan, kebetulan saya membuat alat interface alat uji tarik. Nah untuk hasil data yang sudah valid di tampilkan di alat uji tarik melalui lcd 2×16. Apa bisa dari hasil data yang ditampilkan ke dalam lcd alat uji tarik dibaca dengan mikro kembali untuk komunikasi serial?

Reply

wangready says: April 9, 2013 at 3:25 am

variabel buat ‘baca’ nya saja langsung dikirim buat serial, jadi tidak membaca dua kali…. Reply

ERUL STIKOM Jambi says:  July 3, 2013 at 8:32 am

sekedar berbagi aja brooh..

kalo mau interface UART ke delphi bisa menggunakan komponen Comport..melalui Comport ini lah Delphi bisa berkomunikasi dengan Hyperterminal komputer,,jadi sama dengan menggunakan Hyperterminal, hanya saja dengan delphi kita bisa membuat tampilannya sesuka hati

Reply wangready says:  July 3, 2013 at 9:04 am mantap gan…. Reply El Shaarazy says:  July 27, 2013 at 11:50 am

Bagaimana klo data yang kita kirim dari infra merah kemudian di terima oleh receiver TSOP 4838 kemudian data tersebut kita tampilkan di LCD, program akuisisi data

Reply

wangready says:

 July 27, 2013 at 11:36 pm mungkin kira2 sperti ini gan. -data dikirim IR pake Tx: char kata_kirim[32];

int sensor = 12; //misal data sensor

sprintf(kata_kirim,”data_lcd=%d”,sensor);//pake sprintf biar bisa kirim text ditambah data variabel kita puts(kata_kirim);

-data diterima receiver pake Rx: char kata_terima[32]; int data_terima; while(1) { scanf(“data_lcd=%d”,&data_terima); lcd_clear(); lcd_gotoxy(0,0);

sprintf(kata_terima,”data terima=%d”, data_terima); lcd_puts(kata_terima);

} Reply

Rudi Kurniawan says: December 8, 2013 at 9:15 am mas saya mau tanya….

saya pakai atmega 16 dan LCD trus ada modul MP3 (buat play file .wav)

program untuk nampilin rekaman yg sesuai dgn tampilan LCD gmn yah mas?? Thanks before

Reply

wangready says:

December 11, 2013 at 7:05 am :)

(14)
(15)

Reply

Rudi Kurniawan says: December 9, 2013 at 6:45 am mau tanya gan….

saya buat termometer dgn tampilan LCD + out put suara….

program untuk menampilkan suara rekaman yg sesuai dgn LCD gmn ya gan??? Reply

wangready says:

December 11, 2013 at 7:09 am

dibuat index aja gan per itemnya, nanti pemanggilan code nya berdasarkan index tersebut Reply

Reza says:

December 23, 2013 at 1:16 am saya mau tanya donk gan,,,

di mikrokontroler saya bikin program stopwatch pakai counter, nah saya mau ngirim data stopwatch itu ke komputer gan tanpa perlu pake perintah dari pc, kira2 gimana ya program untuk UARTnya? apa bisa langsung pake printf?

Reply

wangready says:

December 23, 2013 at 7:24 am  bisa gan, pake printf….

Reply

Reza says:

December 24, 2013 at 6:12 am

ok bisa gan, sory mau nanya lagi nih,,, hehe

disitu jd datanya dikirim terus menerus y gan, gimana caranya biar dikirimnya bisa satu persatu pake tombol? jadi ketika kita tekan tombol maka data dikirim….

wangready says:

December 24, 2013 at 8:25 am

klo bayangan saya, untuk menghitung variabel stopwatchnya agan bisa pake timer interrupt gan, nanti bagian input tombol bisa disimpan di while(1) atau bisa juga sebaliknya…

atau jika disimpan di while(1) semua, agan pake deteksi rising edge atau falling edge untuk deteksi tombol sambil menghitung stopwatchnya disimpan di while(kondisi tombol)

Windya Saputra says:  January 8, 2014 at 4:13 am

gan, mau tanya donk, klo misalkan data itu di kirim ke matlab gmn yaa program buat avrnya trs perintah di command windows matlabnya gmn juga yaa ??

=newbie= Reply

wangready says:

 January 10, 2014 at 7:17 pm

daripada pake command window buat .m file aja gan… open port serial nya dulu

klo buat nerima datanya

coba aja gan liat disini sebagai contohnya…hps://wangready.wordpress.com/2013/11/17/mem-plot-data-serial-pada-matlab/ klo dari AVR nya pake printf aja…

3

%*******************inisialisasi serialport*****************************

delete(instrfindall);

S1 = serial ('COM3', 'Baudrate', 9600, 'DataBits', 8, 'Parity','none');

fopen(S1);

3

linedata = fgetl(S1);

data_dec = textscan(linedata, 'data %d %f %d'); dat_A = data_dec{1};

dat_B = data_dec{2}; dat_C = data_dec{3};

(16)
(17)

hasmi bauh says:

 January 14, 2014 at 6:59 am

iya gan, bisa ga ajari bikin deteksi kata di hyperterminal pake ATMega 162

 jadi scenarionya mikro ngirim kata ke hyperterminal “ketikan huruf”, trs kita ngetik misalnya “belajar”, kemudian di tampilan di lcd gitu

soalnya dr kmrn saya nyoba pake tutorial web agan, ga ada error t p ga terjadi apa2 waktu saya compile ke mikro hehe mohon bimbingannya

Reply

wangready says:

 January 31, 2014 at 12:33 pm

masa sih gan, coba habis ngirim data dari hyperterminalnya tekan enter… klo gk, pake getchar aja gan

Reply Iroel says:

February 9, 2014 at 8:50 am @hasmi bauh &wangready char data[32]; int i; . . . while(1) { for (i=0;i<32;i++)

data[i]=0; //bersihkan variabel for (i=0;i<32;i++) { data[i] = getchar(); if(data[i]==0x0D)//char enter  break; } lcd_clear(); lcd_gotoxy(0,0); lcd_puts(data); }

listingnya diatas udah benar, cuma char enternya salah (buka 0x0A, tapi 0x0D)

dalam hyperterminal, saat user menekan enter, maka karakter 0X0D (13 desimal) yang dikirim sebagai enter.kalau 0x0A itu karakter linefeed (pindah baris). adakalanya hyperterminal mengirim 0D dan 0A secara bergantian:

contoh: text +0D + 0A (saat tekan enter)

tapi secara default, karakter enter adalah 0x0D (13), sementara linefeed(0x0A) jarang diikutkan (berganung seting hyperterminal. mudah2an membantu 3 1 1 1 13 1 1 1 1 1 1 char data[32]; int i; . . . while(1) { for (i=0;i<32;i++)

data[i]=0; //bersihkan variabel

for (i=0;i<32;i++) {

data[i] = getchar();

if(data[i]==0x0A) //char enter

break; } lcd_clear(); lcd_gotoxy(0,0); lcd_puts(data); }

(18)
(19)

wangready says:

February 14, 2014 at 5:28 pm Thanks gan…

Reply

Hasmi Baih says:

February 22, 2014 at 4:59 am  bdw pada bener semua gan, thx

Reply

Hasmi Baih says:

February 22, 2014 at 5:07 am

oh iya mau tanya lagi, kan ini udah bisa nyecan

niatnya kan uart 1 -> hyperterminal *buat nyecan kalimat yg diketik lwt keyboard ntar dikirim pake uart0 -> semacam sms gateway

nah kan nyecannya kalimat tadi pake program yg diatas : for (i=0;i<32;i++)

data[i]=0; //bersihkan variabel for (i=0;i<32;i++) { data[i] = getchar1(); if(data[i]==0x0D)//char enter  break; } lcd_clear(); lcd_gotoxy(0,0); lcd_puts(data);

nah itu saya mau ngeluarin variable ʺdataʺ ke uart0 pake printf(data) kok ga bisa ya

gmn ya gan biar bisa ngeluarin satu array dulu sampek habis dari variable data yg didapat dari inputan keyboard biar bisa dikirim ke uart0

semoga paham maksud saya hehe mohon bimbingannya

Reply

wangready says:

February 22, 2014 at 9:27 am pake fungsi puts() gan, misal: puts(data);

soalnya variabel data kan tipe nya char *data…lengkapnya bisa dilihat di library stdio.h yg isinya sbb. void puts(char *str);

int printf(char flash *fmtstr,…); Reply

hasmibaih says:

February 24, 2014 at 1:22 pm

semisal saya bikin program pake 2 uart

uart 0 untuk mendeteksi karakter dr inputan keyboard

trs uart 1 untuk mengirim karakter yg di deteksi dr inputan keyboard tadi dengan sms gateway apakah benar programnya gni gan? void sms() { char data[32]; int i; for (i=0;i<32;i++)

data[i]=0; //bersihkan variabel for (i=0;i<32;i++)

{

data[i] = getchar1();

if(data[i]==0x0D)//char enter

(20)
(21)

 break; }

lcd_clear(); lcd_gotoxy(0,0); lcd_puts(data);

putchar(13); // sinkronisasi baudrate 115200 delay_ms(500);

putchar(13); // sinkronisasi baudrate 115200 delay_ms(500); printf(ʺatʺ); putchar(13); delay_ms(500); printf(ʺat+cmgf=1ʺ); putchar(13); delay_ms(500); printf(ʺat+cmgs=\ʺ083849xxx\ʺʺ); putchar(13); delay_ms(2000);

puts(data); // mengirim karakter yg dr inputan keyboard uart 1 dengan uart0 delay_ms(500); putchar(26); putchar(13); lcd_gotoxy(0,1); lcd_putsf(ʺdoneʺ); delay_ms(500); }

mohon bimbingannya gan thx

Reply

wangready says:

February 26, 2014 at 3:47 pm

klo liat dari syntax nya sih keknya bisa gan… Reply

Yogie Sanjaya says: March 3, 2014 at 3:04 pm

gan kalo pake kode terima uart menggunakan scanf -> scanf(“%d”, &day)

perintah kirim data dari vb ny gimana gan ? Bener gak kalo cuma kayak gini seriarport1.write(textboxt.text) ? Reply

wangready says:

March 3, 2014 at 4:00 pm

kasih kepala data aja gan untuk mengurangi salah terima datanya misal:

scanf(“data_day=%d,&day)

sya agak lupa syntax vb, intinya kirim datanya sesuai format scanf, misal: day data integer

serialport1.write(“data_day=”+day.toString()) Reply

Yogie Sanjaya says: March 3, 2014 at 3:26 pm

saya mau nanya nh gan … kalo pake kode scanf(“%d”, &PWM) ? perintah kirim dari vb nya gimana kode ny nh mas ?

Reply

wangready says:

March 3, 2014 at 4:02 pm

kira2 jawabannya sama dg komen sebelumnya gan Reply

(22)
(23)

May 16, 2014 at 8:22 am

 bos, kalau mau baca data string dari serial kemudian data tersebut disimpan di eeprom internal gmn y caranya? trims

Reply

wangready says: May 21, 2014 at 3:44 am

di codevision avr misal buat ngambil maksimal 32 karakter sampai ketemu karakter enter, tambahkan eeprom depan variabel yg kita inginkan

eeprom char data[32]; for(i=0;i<32;i++) data[i]=0; for(i=0;i<32;i++)

{

data[i]=getchar();

if (data[i]==0x0A)//cek ASCII enter  break;

}

data sudah tersimpan di eeprom Reply

Ira says:

September 25, 2014 at 5:20 am

Saya buat proyek perparkiran, kalau mobil mengenai sensor makan counter jumlah baris parkir kosong berkurang. mikro saya sudah berhasil membaca sensor dan menghasilkan angka 1 0 ((1=LED menyala, 0=LED mati karna sensor), komunikasi menggunakan RS232.

nah permasalahannya, bagaimana cara mengolah data 1,0 dari mikro ke delphi 7 utk bisa digunakan sebagai counter. terimakasih banyak sebelumnya, makasih

Reply

Bluekyuu39 says:

November 9, 2014 at 1:27 pm

Halo gan, saya newbie di codevisionavr , pingin tanya gan… kalau saya ingin memprogram ATmega128 agar bisa ngirim karakter hexadecimal melalui TX uart RS232 ke sensor (camera), gimana ya syntax nya? misalnya hexa yg mau dikirim (56 00 10 00) Respon dari camera maunya dibaca dari hyperterminal. Thanks Gan sebelumnya..

Reply

Create a free website or blog at WordPress.com.

(24)

Referensi

Dokumen terkait

Tipe data Numeric menyimpan data berupa angka, tipe data string menyimpan rangkaian karakter, tipe data boolean menyimpan data berupa benar/salah, tipe data Date menyimpan data

Enkripsi adalah proses dimana informasi/data yang hendak dikirim diubah menjadi bentuk yang hampir tidak dikenali sebagai informasi awalnya dengan menggunakan algoritma

Setelah data-data terkumpul, baik data mengenai tingkat kecemasan maupun data dokumentasi hasil ujian lisan yang berupa nilai dalam bentuk angka, data-data tersebut disusun

Mengolah data dengan menggunakan fungsi- fungsi program pengolah

dikirimkan datanya setelah diolah untuk dikirim melalui wireless connection menggunakan ESP Wifi dan data nya dikirim ke Raspberry Pi yang berfungsi menerima data yang sudah

dikirimkan datanya setelah diolah untuk dikirim melalui wireless connection menggunakan ESP Wifi dan data nya dikirim ke Raspberry Pi yang berfungsi menerima data yang sudah

Fungsi like digunakan untuk menyaring data dengan membandingkan data value dengan string yang diberikan sebagai kondisi.

Data yang diperoleh disimpan ke sistem data logger, kemudian dikirim lagi secara wireless dengan menggunakan gelombang radio ke komputer data kolektor sehingga