• Tidak ada hasil yang ditemukan

PENERAPAN RTOS AVRILOS PADA PENJADWALAN

N/A
N/A
Protected

Academic year: 2018

Membagikan "PENERAPAN RTOS AVRILOS PADA PENJADWALAN"

Copied!
17
0
0

Teks penuh

(1)

TUGAS UTS

SISTEM EMBEDDED

PENERAPAN RTOS AVRILOS PADA PENJADWALAN PENYALAAN LED

Oleh :

1. AgusApriantoro 1110121003 2. Dodik Romanto 1110121008

DosenPengampu :

Akhmad Hendriawan, S.T., M.T.

PROGRAM STUDI DIPLOMA 4

TEKNIK ELEKTRONIKA

DEPARTEMEN TEKNIK ELEKTRO

POLITEKNIK ELEKTRONIKA NEGERI SURABAYA

SURABAYA

(2)

1

BAB I

PENDAHULUAN

A. TUJUAN

Dengan melakukan pengerjaan project berupa “PENERAPAN RTOS AVRILOS PADA PENJADWALAN PENYALAAN LED” menggunakan AVRILOS, mahasiswa diharapkan mampu:

1. Memahami prinsip kerja secara mendasar dari sebuah system dengan RTOS

2. Menjalankan dan memahami System berbasis RTOS yang telah dikembangkan oleh pihak lain pada AVR

3. Mengerti struktur dan jenis penjadwalan serta fungsi-fungsi pada RTOS yg dipilih 4. Mengaplikasikan pada berupa penjadwalan penyalaan LED.

B. LANDASANTEORI

Dalam proses pengerjaan project ini, berikut adalah beberapa teori penunjang yang penulis gunakan :

1. RTOS

RTOS atau kepanjangan dari Real-Time Operating System merupakan sebuah sistem operasi real-time yang dimaksudkan untuk melayani data real-time proses aplikasi, biasanya tanpa penundaan buffering. Persyaratan waktu pemrosesan (termasuk keterlambatan OS) diukur dalam sepersepuluh detik atau lebih pendek.

Karakteristik utama dari sebuah RTOS adalah tingkat konsistensi mengenai jumlah waktu yang dibutuhkan untuk menerima dan menyelesaikan tugas sebuah aplikasi; variabilitas adalah jitter. Sebuah sistem operasi real-time keras memiliki jitter kurang dari sistem operasi lembut real-time. Tujuan utama desain tidak throughput yang tinggi, melainkan jaminan dari kategori kinerja lembut atau keras. RTOS yang biasanya atau umumnya dapat memenuhi tenggang waktu adalah lembut real-time OS, tetapi jika dapat memenuhi tenggat waktu deterministik itu adalah real-time OS keras.

RTOS memiliki algoritma yang canggih untuk penjadwalan. Fleksibilitas scheduler memungkinkan lebih luas, komputer-sistem orkestrasi prioritas proses, tapi real-time OS lebih sering didedikasikan untuk satu set sempit aplikasi. Faktor utama dalam real-time OS adalah latency interrupt minimal dan minimal switching thread latency; real-time OS bernilai lebih untuk seberapa cepat atau seberapa diduga dapat merespon daripada jumlah pekerjaan itu dapat melakukan dalam jangka waktu tertentu.

Algoritma yang umum digunakan pada RTOS adalah:  Cooperative scheduling

(3)

2  Fixed priority pre-emptive scheduling, an implementation of preemptive time slicing

 Fixed-Priority Scheduling with Deferred Preemption  Fixed-Priority Non-preemptive Scheduling

 Critical section preemptive scheduling  Static time scheduling

 Earliest Deadline First approach

 Stochastic digraphs with multi-threaded graph traversal 2. AVRILOS

Sistem Embedded sederhana Operating System Framework yang memungkinkan pesatnya perkembangan membangun aplikasi untuk keluarga AVR tetapi dapat porting ke arsitektur lain cukup mudah. Sistem multitasking Round-Robin Co-operative.

Mendukung:

a. UART, SysTick Timer, ADC, SPI, EEPROM, PWM.

b. Juga mendukung: Xilinx FPGA konfigurasi, antarmuka FPGA SSI, smart card reader dll

c. Diuji secara parsial (modul yang berbeda dalam setiap kasus) pada ATMega163 / 16/32/323/8.

d. Selain itu dapat digunakan mengkonversi bitstream FPGA ke C table disediakan.

(4)

3 a. Struktur direktori

Ada dua bagian utama dari direktori, yaitu Hardware (HW) dan Software(SW)

[1] Direktori hardware berisi tentang hardware yang direkomendasikan oleh pembuat, baik skematik dan PCB file, kemudian juga dengan penerapan AVRILOS pada FPGA

[2] Direktori software terdiri dari direktori penyusun terkait chip yang digunakan. Beberapa direktori pendukung lainnya yang mempunyai tujian khusus yaitu

i. build.dep ii. build.err iii. build.obj iv. build.lst

v. build.rom

Direktori root pada makefile.

Direktori Config (direktori pendukung makefile, konfigurasi harware, dan perihtah compiler), dan direktori Source code yang berisi

i. Applic, merupakan file utama yang berisi Kernel.c yang berisi progam penjadwalan.

ii. peripheint, Periperial internal dari microcontroller, seperti Timer, Uart.

iii. perpheext, Periperial eksternal dari luar mikrokontroller berupa smartcard, LPC flash, dan peralatan SPI.

(5)

4 v. debug, digunakan untuk memonitor proses debug, sehingga

debugging menjadi lebih mudah, fitur ini dapat dimatikan agar penggunaan memori menjadi hemat.

vi. include, berisi global definition dan pengaturan device yang akan terhubung dengan OS ini.

Deskripsi kernel

Kernel.c kode inisialisasi dan loop utama. Selama maka startup Kernel mengeksekusi berbagai inisialisasi setiap modul / periperial . Progam inisialisasi di bagi menjadi bagian bagian tertentu sehingga progam menjadi modular dan mudah untuk di modifikasi.

Scheduler menggunakan penjadwalan round-robin. Setiap cek tugas harus dipicu dari beberapa flag seperti timer SysTick (Dalam periphint / Timer0.c) :

Cek untuk melihat bahwa timer interrupt telah ditandai b_SysTick (Bit) di v_SysStat(Variable), jika tidak ada hanya keluar. Jika ya menjalankan semua fungsi yang ada. Kasus lain akan menguji apakah ada data baru dalam port serial (sepertiapplic / serial / SerApp.c) atau tidak.

Jadi untuk membuat tugas baru (aplikasi, perangkat dll) taks baru tidak harus memblokir sistem atau menunggu terlalu lama. Khususnya pelaksanaan penundaan semua fungsi tidak boleh melebihi waktu SysTick. Jika tidak ada alternatif:, antara meningkatkan interval Systick atau mengurangi pemblokiran waktu.

Deskipsi modul

Ada beberapa modul, yaitu Systick, UART, Debugger dan module yang lain, namun yang akan dibahas hanya modul Systick.

(6)

5 Sesuai definisi aktivasi bit dinyatakan dalam meliputi / settings.h:

Waktu tick dapat dirubah sesuai kebutuhan, sedangkan jika menginkan Timer lain dapat menambahkan hingga 4 timrt yaitu

Satuan dalam mS, contoh 10mS

Timer diatas mempuyai waktu 10mS , untuk mengecek apakah sudah 10mS menggunakan intruksi

(7)

A. PERALATAN

Pada prosses pengerjaan project ini, penulis menggunkan beberapa alat dan bahan sebagai berikut:

1. Minimum System Atmel ATMega 16 2. I/O LED dan Tombol

3. Power Supply 4. Downloader USB 5. PC dengan software 6. Command Promp

B. RANGKAIAN MIKROKONTROLER

Dari prosses kajian pustaka yang telah dilakukan, Chip yang digunakan dengan dasar

penugasan. Berikut adalah gambar observasi ini:

Gambar

BAB II

PEMBAHASAN

Pada prosses pengerjaan project ini, penulis menggunkan beberapa alat dan bahan sebagai berikut:

Minimum System Atmel ATMega 16 dan Tombol

Power Supply

USB-sASP

PC dengan software text editor (Sublime, Notepad++, Notepad) Command Promp

RANGKAIAN MIKROKONTROLER

Dari prosses kajian pustaka yang telah dilakukan, maka dilakukukan pemilihan Chip yang digunakan dengan dasar minimum requirementdan spesifikasi/syarat

. Berikut adalah gambar skematik dan Hardware yang digunakan untuk

Gambar 2.1 Skematik Hardware ATMega16

6 Pada prosses pengerjaan project ini, penulis menggunkan beberapa alat dan

text editor (Sublime, Notepad++, Notepad)

(8)

Gambar 2.4 Hardware ATMEGA 16 (tampak atas)

Gambar 2.5 Hardware ATMEGA 16 (tampak samping) Gambar 2.2 PCB Hardware ATMega16

Gambar 2.3 Extend Board I/O 3 LED

Gambar 2.4 Hardware ATMEGA 16 (tampak atas)

Gambar 2.5 Hardware ATMEGA 16 (tampak samping)

7 Gambar 2.4 Hardware ATMEGA 16 (tampak atas)

(9)

8 C. PEMROGAMAN

Persoalan yaitu

 Menyalakan LED 1 setiap 1 detik, mati 1 detik  Menyalakan LED 2 setiap 2 detik, mati 2 detik  Jika Tombol ditekan LED 3 menyala 4 detik 1. Melakukan pemilihan chip pada direktori

\config\hw.in

#put the name of the target mcu here (at90s8515, at90s8535, attiny22, atmega603 etc.)

# MCU = at90s8515

2. Melakukan harware untuk jalur pemrogaman menggunakan USB ASP \config\env.in

###### define some variables based on the AVR base path in $(AVR) #######

AVRCC = avr-gcc

AVRAS = avr-gcc -x assembler-with-cpp

RM = rm -f AVRPROG = avreal32.exe AVRPROGSP = avrdude.exe PROGPORT = COM3 PROGDEV = usbasp

###### output format can be srec, ihex (avrobj is always created) ####### FORMAT = ihex

####################### default compiler flags ########################## CPFLAGS = -g -O3 -Wall -Wstrict-prototypes -Wa,-ahlms=$(<:.c=.lst)

$(CDEFS)

####################### default assembler flags ######################### ASFLAGS = -Wa,-gstabs

########################## default linker flags ######################### LDFLAGS = -Wl,-Map=$(TRG).map,--cref

3. Inisialisai I/0 dan Sytick yang akan diguanakan pada \src\applic\apllic.c

#define LED1 PA3

#define LED2 PA4 #define LED3 PA5 #define TOMBOL1 PB1

(10)

9 #define LED1toogle PORTA^=(1<<LED1)

#define LED2On PORTA&=~(1<<LED2) #define LED2toogle PORTA^=(1<<LED2) #define LED3On PORTA&=~(1<<LED3) #define LED3Off PORTA|=(1<<LED3)

#define LAMATICK 200;

#define c_MYLEDTIMER_ID 0 /* Could be any SW timer up to (c_MAXSWTIMERS-1), defined in src/includes/ifc_time.h */ // Application Inititialization called before Kernel main loop void f_Init_Applic(void)

{

// initialize I/O (Your function/code) DDRA=0xff;

PORTA=0xff; DDRB=0x00; PORTB=0xff;

// Set SW Timer to your delay (500ms)

v_SwTimer_mS[c_MYLEDTIMER_ID] = LAMATICK;

// LED Off (Your function/code) }

Progam untuk penjadewalan penyalaan LED 1 dan 2

// Function called by the main kernel loop (task) // Should not block

// This process runs on every Application Tick // Use this for timed event handling

unsigned char hitung=0, hitung2=0,flagBTombol1=0; void f_Applic_Tick(void)

{

// Timer Expired? // Aktif setelah 1 detik

(11)

10 LED2toogle;

hitung=0; }

if(hitung2==1) {

LED3Off;

flagBTombol1=0; }

}

Progam untuk penyalaan LED 3 dengan tombol 1

// Function called by the main kernel loop (task) // Should not block

// This process runs continuously on the main loop // Use this if you need no wait time on each run void f_Applic_Cont(void)

{

if (!(PINB&(1<<TOMBOL1))) {

if(flagBTombol1==0) {

hitung2=5; flagBTombol1=1; }

}

(12)

11 Untuk download progam menggunakan command promt yaitu sebagai berikut:

1. Masuk direktory dari makefile

2. Ketik make list untuk melihat instruksi yang ada

3. Ketik make clean untuk membersihkan file last build

(13)

12 4. Ketik make all untuk mengcompile

(14)

13

BAB III

PENUTUP

A. Analisa

Dari seluruh rangkaian proses pada project ini penulismendapatkanbeberapa analisa diantaranya adalahsebagai berikut:

1. RTOS atau kepanjangan dari Real-Time Operating System merupakan sebuah sistem operasi real-timeyang dimaksudkan untuk melayani data real-time proses aplikasi, biasanya tanpa penundaan buffering. System RTOS juga dapat dijalankan pada Mikrokontroller keluarga Cortex maupun AVR dengan prinsip kerja seperti interrupt timer. Program ditulis dan dijalankan dalam dalam masing-masing threads yang diberi nama oleh programmer yang seolah-olah seluruh thread tersebut bekerja secara bersaaman namun sebenarnya bergantian atau seperti mengeksekusi program secara melompat-lompat antar threads dengan waktu yang sangat cepat.

2. AVRILOS merupakan jenis RTOS yang sangat sederhana yang cara kerjanya mudah untuk dipahami, sehingga ATmega 16 dengan memory yang sedikit sudah dapat digunakan untuk menjalankan RTOS ini.

3. Pada penjadwan penyalaan LED tidak menggunakan progam blocking sehingga seolah olah progam berjalan secara pararel

4. Pada penekanan tombol di gunakan taks sendiri yang sudah disediakan oleh AVRILOS

B. Kesimpulan

Dari seluruh rangkain prosses pada project ini, penulis menarik beberapa kesimpulan diantaranya adalah sebagai berikut:

1. System RTOS juga dapat bekerja pada mikrokontroller keluarga AT Mega

2. Prinsip kerja RTOS adalah seakan-akan seluruh taks/threads bekerja secara bersamaan namun sebenarnya bergantian antar taks dengan waktu yang singkat

(15)

14 LAMPIRAN 1

1. Script progam pada\src\applic\apllic.c

/***************************************************************************

Project: AVRILOS

Title: Example Lock Application Author: Ilias Alexopoulos

Version: 2.10

Last updated: 05-Nov-2011

Target: AT90S8535/ATMEGA

File: applic.c

* Support E-mail: * avrilos@ilialex.gr *

* license: See license.txt on root directory (CDDL) *

*

* V2.00, 28-Oct-2010, Initial published version

* V2.10, 05-Nov-2011, Split main calls to two functions, one run on every application tick,

* The other runs continously. This provides

flexibility on how we need

* To control things for specific applications.

* DESCRIPTION

* Empty Demo Application

***************************************************************************/

#define LED1On PORTA&=~(1<<LED1) #define LED1toogle PORTA^=(1<<LED1) #define LED2On PORTA&=~(1<<LED2) #define LED2toogle PORTA^=(1<<LED2) #define LED3On PORTA&=~(1<<LED3) #define LED3Off PORTA|=(1<<LED3) #define LAMATICK 200;

#define c_MYLEDTIMER_ID 0 /* Could be any SW timer up to (c_MAXSWTIMERS-1), defined in src/includes/ifc_time.h */

// Application Inititialization called before Kernel main loop void f_Init_Applic(void)

{

// initialize I/O (Your function/code) DDRA=0xff;

PORTA=0xff; DDRB=0x00; PORTB=0xff;

// Set SW Timer to your delay (500ms)

(16)

15 // LED Off (Your function/code)

}

// Function called by the main kernel loop (task) // Should not block

// This process runs on every Application Tick // Use this for timed event handling

unsigned char hitung=0, hitung2=0,flagBTombol1=0; void f_Applic_Tick(void)

{

// Timer Expired? // Aktif setelah 1 detik

if (v_SwTimer_mS[c_MYLEDTIMER_ID] == 0 ) {

// Function called by the main kernel loop (task) // Should not block

// This process runs continuously on the main loop // Use this if you need no wait time on each run void f_Applic_Cont(void)

{

(17)

16 DAFTAR PUSTAKA

[1] http://sourceforge.net/projects/avrilos/ diakses pada 1 Desember 2015

[2] http://avrilos.sourceforge.net/ diakses pada 1 Desember 2015

Gambar

Gambar Gambar 2.1 Skematik Hardware ATMega16
Gambar 2.5 Hardware ATMEGA 16 (tampak samping)Gambar 2.5 Hardware ATMEGA 16 (tampak samping)Gambar 2.5 Hardware ATMEGA 16 (tampak samping)

Referensi

Dokumen terkait

Semakin tinggi intensitas moral seorang auditor menunjukkan bahwa dalam bekerja ia akan memiliki pertimbangan moral dalam melakukan audit atas laporan keuangan dan

Nur Shafini Mohd Said (2015) Relationship between Employee Motivation and Job Performance: A Study at Universiti Teknologi MARA (Terengganu) Metode penelitian

Tingkat Kemampuan Menulis Naskah Ilmiah Ketrampilan menulis jurnal merupakan sasaran akhir dari pelatihan yang diberikan, sudah disadari bahwa dengan waktu yang sangat

pemuda dengan cerita mengguncangkan, bahkan kelak akan melegenda dan menjadi tumpuan harapan. Begitupun dengan kalian, semoga masih muncul harapan, untuk mewujudkan impian.

Kalau sebelumnya, sesuai dengan perkembangan masyarakat, orang membuat pakaian dari benang yang dibuat dari bahan-bahan yang tersedia di tempat pemukiman

‘I should have called you,’ Freddi says, and although she’s looking at Hodges, he has an idea it’s really herself she’s speaking to.. ‘I would have, if I’d thought

Anggapan yang mengisyaratkan bahwa perempuan adalah makhluk yang tidak kompeten kecuali dalam urusan tugas rumah tangga menjadi kurang tepat ketika dihadapkan pada

Hal ini disebabkan karena dukungan keluarga disebabkan oleh beberahal, salah satunya usia orang tua paling banyak berada pada usia 31-45 tahun karena usia akan