By | 15/02/2018

Hello Sahabat Anak Kendali,

dalam Artikel kali ini saya akan membuat projek arduino yang diprogram dengan software CVAVR

jika biasanya kita memprogram Arduino dengan sofwtware IDE nya sekarang kita akan membuat program dengan CVAVR,
ada sedikit perbedaan dalam membuat program, jika di arduino IDE kita mendefinisikan pin berdasarkan pin number pada board Arduinonya tapi ketika kita menggunakan CVAVR sebagai IDEnya maka yang kita butuhkan adalah Pin Pin yang berdasarkan IC Atmega 328 nya, berhubung yang saya gunakan adalah Arduino Uno

Cara Mengakses EEPROM Arduino

mungkin itu penjelasan singkat saya, untuk itu kita harus mengetahui pin Atmega 328, pin Atmega 328 dapat diketahui dari datasheet IC nya yang sudah tersedia pada google, silahkan dicari datasheet atmega 328

dan ini saya tunjukan pin Atmega 328 pada gambar Arduino Uno,

Cara Program Arduino dengan CVAVR

berdasarkan gambar diatas, PIN 13 Arduino bertepatan dengan Port B pada bit ke 5 atau PORTB5 IC Atmega 328.
jadi yang akan kita atur sebagai Output (jika di arduino pinMode) adalah PORTB 5
untuk itu, bukalah sotware CVAVR, jika belum punya, bisa download di akhir postingan ini.
lalu pilih new project – gunakan codewizard, sebagai pembantu membuat program, pada bagian Chip silahkan cari IC Atmega 328p kemudian atur clock nya menjadi 16.Mhz

pada bagian Port silahkan atur PORTB pada bit 5 menjadi Out karena akan kita fungsikan sebagai keluaran.

Program Arduino dengan CVAVR

setelah itu generate, dan berikan nama pada projek berturut 3 kali, dan namanya harus sama,
kemudian buatlah program sebagai berikut

/*****************************************************
This program was produced by the
CodeWizardAVR V2.05.3 Standard
Automatic Program Generator
© Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project : 
Version : 
Date    : 1/2/2018
Author  : Chaerul Anam
Company : Sixty Light
Comments: 


Chip type               : ATmega328P
Program type            : Application
AVR Core Clock frequency: 16.000000 MHz
Memory model            : Small
External RAM size       : 0
Data Stack size         : 512
*****************************************************/

#include <mega328p.h>
#include <delay.h>

// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

// Input/Output Ports initialization
// Port B initialization
// Func7=In Func6=In Func5=Out Func4=In Func3=In Func2=In Func1=In Func0=In 
// State7=T State6=T State5=0 State4=T State3=T State2=T State1=T State0=T 
PORTB=0x00;
DDRB=0x20;

// Port C initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
// 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=0xFF
// OC0A output: Disconnected
// OC0B output: Disconnected
TCCR0A=0x00;
TCCR0B=0x00;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 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: Timer2 Stopped
// Mode: Normal top=0xFF
// OC2A output: Disconnected
// OC2B output: Disconnected
ASSR=0x00;
TCCR2A=0x00;
TCCR2B=0x00;
TCNT2=0x00;
OCR2A=0x00;
OCR2B=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// Interrupt on any change on pins PCINT0-7: Off
// Interrupt on any change on pins PCINT8-14: Off
// Interrupt on any change on pins PCINT16-23: Off
EICRA=0x00;
EIMSK=0x00;
PCICR=0x00;

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

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

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

// USART initialization
// USART disabled
UCSR0B=0x00;

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

// ADC initialization
// ADC disabled
ADCSRA=0x00;

// SPI initialization
// SPI disabled
SPCR=0x00;

// TWI initialization
// TWI disabled
TWCR=0x00;

while (1)
      {
      // Place your code here
           PORTB.5 = 1;
           delay_ms(1000);
           PORTB.5 = 0;
           delay_ms(1000);
      }
}

kemudian Build All project, jika tidak ada error berarti program kita sudah berhasil, dan bisa di uplode code .Hex nya

Cara Program Arduino dengan CVAVR
kemudian, bukalah aplikasi Xloader sebagai uploder (bahasa saya :v) dan setting baud rate menjadi 115200, sesuaikan Port nya dengan port Arduino yang terdetek, pilih device nya dengan Arduino Uno Atmega 328, lalu carilah file hex nya di tempat kita menyimpan program tadi,
Cara Program Arduino dengan CVAVR
terakhir kita tinggal menguplode programnya. dan selesai.
mungkin cukup sekian Artikel kali ini, silahkan untuk Download software yang ada diatas, sebagai berikut
keyword : 
Arduino dengan CVAVR
CVAVR Arduino
cara memprogram arduino dengan CVAVR
mengupload file hex Arduino
anak kendali

3 Replies to “Cara Program Arduino dengan CVAVR”

Leave a Reply

Your email address will not be published. Required fields are marked *