Efek Tulisan Bayangan

Pada tutorial photoshop kali ini saya akan membuat sebuah efek teks(tulisan), effek ini dapat anda buat di adobe photoshop versi apa saja. disin saya akan membuatnya pada photoshop cs3 jadi langsung saja kita ke te.. ka.. pe.. <----- kebanyakan nonton OVJ neh..


  1. buat sebuah halaman kerja baru dengan cara klick file > New atau dengan cara ?ctrl-n?
  2. Berikut, klik Horizontal Type tool atau klik keyboard ?T? 
  3. Edit font, size(ukuran), colour(warna), dan klik sekali di area lembar kerja, lalu tuliskan kata-kata anda.
  4. lihat Layer anda, nama layer teks anda akan serupa dengan teks yang anda ketik tadi, klik layer teks anda tersebut lalu klik Layer > Duplicate Layer > ok, atau  dengan shortcuts ?
    ctrl-j?. lihat nama layer anda akan bertambah ?note ; layer dapat anda tampilkan dengan mengetikkan di keyboard F7? effek teks photoshop
  5. lalu klick move tool (v)
  6. klik layer hasil copy tadi misalnya ?Jaka Zulham copy?
  7. tekan keyboar ?ctrl+T? lalu klik kanan pada teks pilih Flip Vertikal
  8. tulisan anda akan terbalik, lalu atur kebawah sehingga tampak seperti ini : 
  9. klik sekali pada layer ?Jaka Zulham copy? dan klik Add Vector mask (di bawah Layer) Lihat Gambar : effek teks photoshop
  10. klik sekali pada layer ?Jaka Zulham copy? dan klik Add Vector mask (di bawah Layer) Lihat Gambar : effek teks photoshop
  11. Klik tool ?Gradient Tool? atau dengan keyboard ?G? Lalu pilih warna hitam dan putih. effek teks photoshop
  12. Tarik dan drag (ditekan jangan dilepas) dari atas kebawah atau sebaliknya sehingga hasilnya seperti berikut : effek teks photoshop
  13. Liat gambar di atas.. gimana hasilnya? pasti ada yang janggal kan? liat Huruf ?J? nya,, masih aneh tuh nampaknya ^^. anda dapat mendelete(menghapusnya) dengan cara klik ?Erase Tool? atau dengan keyboard ?E? dan hapus secara perlahan ?J? Tersebut.
  14. Ingat!! masih dalam layer ?Jaka Zulham copy? liat hasilnya :effek teks photoshop
  15. gimana?? keren kah? hasil mirrornya? ^^ heehe
  16. bisa juga dibuat sehingga hasilnya sbb :SMK N 1 Lhokseumawe 

Membuat Gambar Search Engine Sendiri

Gimana gambar desainnya :) ,  mantap kan???
Sebenarnya triks ini saya dapatkan dari website lain, tapi, namanya aja berbagi ilmu ya pastinya saya juga akan membagi bagi triks ini kepada anda :)..
mau tau cara buatnya???

  1. buka http://www.007google.com/
  2. akan terlihat gambar seperti dibawah ini :

  1. trus, eh kok disamping jadi no 1??
  2. di step 1 isi nama atau kata kata yang ingin anda tuliskan
  3. next pilih jenis type tulisan yang anda sukai
  4. finally, create my search engine....
  5. lihat deh desain search engine anda pribadi anda :)

Membuat Effek Negatif Pada Photo

Simple effek berikut ini mungkin dapat anda lakukan dengan mata terpejam? ^hehe,,,
sok pande, tapi,, emang iya kok,,,
Tapi sebelum itu, saya minta maaf kepada teman teman saya kalo fotonya saya publishing pada postingan tutorial berikut?
biar lako gitoh?
hehe^? Foto ini diambil pada saat perayaan Maulid Nabi Muhammad SAW diLingkungan sekitar SMKN 1 Lhokseumawe, berikut cuplikannya :
perlu diperkenalkan gag neh??
ya u dah deh saya akan memperkenalkannya, (maaf ya bro fotonya) peace?
(dari kiri kekanan) Andika, Irfan, Nuril, Reza, Ary, Safar, Dan saya Sendiri :) Jaka?
ok kita langsung deh buat effeknya :
  1. buka foto anda, disinin saya buat dengan gambar diatas,
  2. Tekan CTRL+I untuk menginvers warna gambar
  3. jadi deh efek negativenya :)
hoho?
biar lebih keren, buat deh beberapa teks effeknya

Cat Rambut Dengan Photoshop

Assalamua?laikum wr wb, Maaf kalau trik kali ini bukan hasil pemikiran saya sendiri, akan tetapi trik yang saya baca dari ilmugrafis.com.
akan tetapi tips ini sudah saya rilis ulang sehingga saya posting pada blog saya ini.
hmmm.. mungkin jika anda punya pertanyaan atau sesuatu yang ingin anda pertanyakan atau gimana sih cara buatnya, Request aja keblog ini melalui komentar, insya Allah saya akan bantu anda membuatnya, jadi anda tinggal Request aja diblog ini dan tunggu tanggal terbitnya.. :)

Sebelum itu, saya ingin mengucapkan selamat PRAKTEK(PKL) sekolah kepada teman-teman saya Se SMKN1Lhokseumawe Khususnya 2 Multimedia, semoga sukses dan salam jumpa 3  bulan kedepan deh, aku akan selalu merindukan kalian,,
hehe, Lebaiiii?.
Kembali Ke Laptop,

Langkah 1
buka foto anda, pastikan photo tersebut rambutnya tidak hitam pekat, akan tetapi sedikit pirang atau putih putih kayak foto keren ini deh ;) hehe,,,sTyLe (63)

Langkah 2
Biar lebih aman di CTRL+J deh, biar layer tersebut menjadi 2

Langkah 3
pilih seleksion tool, mau lasso tool, poligonal tool, atau magnetic tools, suka hati deh,, tekan aja ?L?

Langkah 4
seleksi bagian rambut anda :cat rambut
    Langkah 5
    untuk memperhalus seleksinya Klik kanan di tengah tengah seleksi dan pilih Feather dan isi feather radius kira kira 5 pixels deh, atau sesuai ukuran foto anda lah.

    Langkah 6
    tekan Image > Adjustments > Variations dan pilih opsi warna yang anda suka dengan cara klik gambar-gambar tersebut : disini saya memakai warna More Green dan tekan OKcat rambut 2
    Langkah 7
    pilih Select > Deselect untuk menghapus seleksi

    Langkah 8
    Nikmatin deh gambar hasil editan anda (maksud dinikmatin jangan dimakan ya) :)
    kira-kira hasilnya begini deh?
    jaka zulham
    yang ingin bertanya, MereQuest Cara atau tutorial, kasih Comment aja deh dibawah blog jaka zulham ini? :)

    MEMBUAT PROGRAM KEYPAD DENGAN CODEVISIONAVR


    #include <mega8535.h>
    #include <delay.h>

    // Alphanumeric LCD Module functions
    #asm
       .equ __lcd_port=0x15 ;PORTC
    #endasm
    #include <lcd.h>

    // Declare your global variables here
              unsigned char key;
             
    unsigned char keypad()
    {
    PORTA=0b11111100;
    if(PINA.5==0)   return ('1');
    if(PINA.6==0)   return ('2');
    if(PINA.7==0)   return ('3');

    PORTA=0b11111010;
    if(PINA.5==0)   return ('4');
    if(PINA.6==0)   return ('5');
    if(PINA.7==0)   return ('6');     

    PORTA=0b11110110;
    if(PINA.5==0)   return ('7');
    if(PINA.6==0)   return ('8');
    if(PINA.7==0)   return ('9');  

    PORTA=0b11101110;
    if(PINA.5==0)   return ('*');
    if(PINA.6==0)   return ('0');
    if(PINA.7==0)   return ('#');
    }
    void main(void)
    {
    // Declare your local variables here

    // Input/Output Ports initialization
    // Port A initialization
    // Func7=In Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
    // State7=T State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
    PORTA=0xFE;
    DDRA=0x1F;

    // Port B 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
    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;

    // 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);

    while (1)
          {
          // Place your code here
               key=keypad();
               if(key=='1');
               {   
               lcd_clear();
               lcd_gotoxy(0,0);
               lcd_putsf("keypad=1");
               }
                if(key=='2');
               {
               lcd_clear();
               lcd_gotoxy(0,0);
               lcd_putsf("keypad=2");
               }
                if(key=='3');
               {    
               lcd_clear();
               lcd_gotoxy(0,0);
               lcd_putsf("keypad=3");
               }
                if(key=='4');
               {         
               lcd_clear();
               lcd_gotoxy(0,0);
               lcd_putsf("keypad=4");
               }
                if(key=='5');
               {         
               lcd_clear();
               lcd_gotoxy(0,0);
               lcd_putsf("keypad=5");
               }
                if(key=='6');
               {         
               lcd_clear();
               lcd_gotoxy(0,0);
               lcd_putsf("keypad=6");
               }
                if(key=='7');
               {         
               lcd_clear();
               lcd_gotoxy(0,0);
               lcd_putsf("keypad=7");
               }
                if(key=='8');
               {         
               lcd_clear();
               lcd_gotoxy(0,0);
               lcd_putsf("keypad=8");
               }
                if(key=='9');
               {         
               lcd_clear();
               lcd_gotoxy(0,0);
               lcd_putsf("keypad=9");
               }
                if(key=='*');
               {         
               lcd_clear();
               lcd_gotoxy(0,0);
               lcd_putsf("keypad=*");
               }
                if(key=='#');
               {         
               lcd_clear();
               lcd_gotoxy(0,0);
               lcd_putsf("keypad=#");
               }
                if(key=='0');
               {         
               lcd_clear();
               lcd_gotoxy(0,0);
               lcd_putsf("keypad=0");
               }
              
              
              
          };
    }

    PROGRAM MENGGESER LED DENGAN CODEVISIONAVR



    Sebelum kita membahas program ada baiknya kita mengetahui terlebih dahulu apa itu LED? LED merupakan komponen yang dapat mengeluarkan emisi cahaya. LED merupakan produk temuan lain setelah dioda. Strukturnya juga sama dengan dioda, tetapi belakangan ditemukan bahwa elektron yang menerjang sambungan P-N juga melepaskan energi berupa energi panas dan energi cahaya. LED dibuat agar lebih efisien jika mengeluarkan cahaya. Untuk mendapatkan emisi cahaya pada semikonduktor, doping yang pakai adalah galium, arsenic dan phosporus. Jenis doping yang berbeda menghasilkan warna cahaya yang berbeda pula.
    Sekarang LED adalah salah satu komponen elektronika yang sudah sangat mudah kita temui dan kita dapatkan dan dalam memilih LED selain warna, perlu diperhatikan tegangan kerja, arus maksimum dan disipasi dayanya. Berikut program Running LED :

    #include <mega8535.h>
    #include <delay.h>

    // Declare your global variables here

    void main(void)
    {
    // Declare your local variables here
                   int i;
    // 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;

    // Port B 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
    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=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
    // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
    PORTD=0x00;
    DDRD=0xFF;

    i=1<<8;                 //Bit ke 8 diset logika 1
    PORTD=~i;               // Invert Variabel supaya hanya satu led yg nyala
    delay_ms(1000);

    // 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;

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

    while (1)
          {
          // Place your code here
                delay_ms(1000);
                i>>=1;        // Geser kekanan satu kali
                PORTD=~i;
                if(i==0)     //Jika Variabel i=0
                {
                i=1<<8;      //bit ke 8 diset logika 1 lagi
                }   
          };
    }

    PROGRAM MOTOR STEPPER CCW DENGAN CODEVISIONAVR


    Sebelumnya, sebaiknya anda mengetahui terlebih dahulu dasar teori tentang motor stepper yang anda bisa lihat di postingan Program Motor Stepper Searah Jarum Jam Dengan Codevisionavr
    Berikut program menggerakkan motor stepper berlawanan araj jarum jam (CCW) :

    #include <mega8535.h>
    #include <delay.h>

    // Declare your global variables here

    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;

    // Port B 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
    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=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
    // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
    PORTD=0x00;
    DDRD=0xFF;

    // 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;

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

    while (1)
          {
          // Place your code here
                    PORTD=0x08;
                    delay_ms(500); 
                    PORTD=0x04;
                    delay_ms(500);
                    PORTD=0x02;
                    delay_ms(500);
                    PORTD=0x01;
                    delay_ms(500);
                   
          };
    }

    PROGRAM MOTOR STEPPER SEARAH JARUM JAM DENGAN CODEVISIONAVR


    Motor Stepper  banyak dipakai pada penggerakan mekanik. Pergerakannya per langkah atau step by step. Bergantung pada pulsa yang diberikan pada rotornya, dimana dalam pemberian pulsa elektrik yang dimasukan ke kumparan harus dengan urutan yang benar. Urutan pemberian pulsa ke motor stepper akan menyebabkan arah putaran yang berbeda. Sedangkan besarnya frekuensi dari pulsa akan mempengaruhi kecepatan putaran motor stepper. 













     Gambar Rotor pada Motor Stepper
    Dimana kali ini kita akan membuat program mengendalikan arah putaran motor stepper tipe 4 kabel tepatnya motor stepper yang ada di printer dengan codevisionavr :
     














    #include <mega8535.h>
    #include <delay.h>
    // Declare your global variables here
    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;
    // Port B 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
    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=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
    // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
    PORTD=0x00;
    DDRD=0xFF;
    // 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;
    // Analog Comparator initialization
    // Analog Comparator: Off
    // Analog Comparator Input Capture by Timer/Counter 1: Off
    ACSR=0x80;
    SFIOR=0x00;
    while (1)
          {
          // Place your code here
                    PORTD=0x01;
                    delay_ms(500); 
                    PORTD=0x02;
                    delay_ms(500);
                    PORTD=0x04;
                    delay_ms(500);
                    PORTD=0x08;
                    delay_ms(500);
                   
          };
    }
    Lihat juga Postingan tentang Program Motor Stepper Berlawanan arah Jarum Jam Dengan Codevisionavr