Chatting & Request!

Cari disini!

Tuesday, January 28, 2014

[Tutorial Codevision AVR] Membuat Delay_ms/Waktu Tunda Menggunakan Timer0, Timer1, Timer2 dst MEngunakan AtMega


mohon maaf atas ketidaknyamanan ini.
Salam,
Rino Christianto
Share:

30 comments:

  1. klo pake pustaka delay kan tergantung clock yang kita gunakan juga, memang lebih presisi klo menggunakan perhitungan manual via timer

    ReplyDelete
    Replies
    1. iya sih mas cuma dari yang saya baca dari program delay.h punya atmel studio
      terdapat program ini #define F_CPU 1000000UL // 1 MHz
      yang menurut saya nilai F_CPU adalah 1MHz dan kelihatanya itu sudah patokan buat semua setingan kalau mengunakan delay.h
      yg masih saya bingung apakah gak pengaruh kalau clock externalnya berubah? sedangkan nilai F_CPU tetap 1MHz dan nilai F_CPU ini di gunakan untuk perhitungan dari delay_ms dan delay_us, dan dari sini saya coba buat program yg sifat delaynya berdasarkan nilai dari clock eksternal atau frekuensi osilator walaupun dari program yg saya beri di atas belum sepenuhnya di bilang presisi

      tapi lumayan lah buat berbagi ilmu dan mohon koresksinya jikalau salah :)

      Delete
  2. Mas, kalo perbedaan antara mode phase correct pwm, mode normal dan ctc itu bedanya diapanya ya? kalo yang digunakan untuk program delay sebaiknya dengan menggunakan mode apa ya? Thanks, Best Regards

    ReplyDelete
    Replies
    1. setau saya mas kalau mode normal ada 3 pilihan di dalamnya yaitu
      1. normal overflow (baru yg satu ini pernah saya coba)
      2. normal compare match
      3. mode normal input capture

      kalau mode CTC dia akan mencacah naik sampai puncak kemudan kembali ke nol lagi kemudian akan mengeset )CF1 untuk memulai intrup timer jika diaktifkan

      kalau phase correct pwm dia sifat pencacahnya bolak balik misalkan awalnya mencacah naik setelah sampai puncak dia akan memcacah turun terus jika sampai ke ke nol akan mengulang mencacah naik lagi dan begitu seterusnya

      itu yang saya tau mas maaf kalau masih salah :)
      sumber : Buku Mikrokontroler AVR ATmega8/32/16/8535 dan Pemrogramannya dengan Bahasa C pada WinAVR, Karya Ardi Winoto

      Delete
    2. kalau untuk delay saya menggunakan mode normal dengan intrupsi overflow mas :)

      Delete
  3. Asskum gan,,,
    Codevision AVR itu software atw aplikasi,,???
    bantu saya gan
    saya mw buat delay macro x7

    ReplyDelete
    Replies
    1. itu nama software gan bisa di download disini
      http://www.rizrobot.com/2013/03/software-codevisionavr-2053-full.html

      kalau yg ukuran macro apa ya bedanya dengan micro?

      Delete
  4. saya mau buat timer 15 detik 8 bit kok hasil perhitungan nya minus ya..
    mhon bantuannya..

    ReplyDelete
    Replies
    1. anda harus tau dulu Tmax dari timer 8 bit nya, sepertinya untuk 8 bit gak mampu per 15 detik kecuali ditambah beberapa program loop

      Delete
  5. saya mau nanya gan,
    untuk seting delay dalam skala mikro second dengan clock 12 MHz bisa g ? klau bisa lihat configurasinya. thx

    ReplyDelete
    Replies
    1. kalau mengunakan clock 12MHz dengan prescaler 1024 maka waktu maksimal yang bisa di gunakan

      timer1 (16 bit) = 5.59240533 s
      timer0 (8 bit) = 0.0218453 s = 21.8453 ms

      jadi bisa digunakan seharusnya tetapi setelah saya hitung hitung jika ingin micro second hanya bisa dari per 100 us

      untuk configurasinya bisa mengunakan timer 8 bit dengan perhitungan diatas ya

      Trimakasih sudah berkunjung

      Delete
  6. materi yang keren..

    saya mau tanya,
    bagaimana jika saya mau membaca ADC yang mempunyai data 100Hz.
    saya mau sampling per 1ms per 1 Hznya.

    gimana caranya ya?

    terima kasih

    ReplyDelete
    Replies
    1. kalau menurut saya sih buat saja intrupsi per 1 ms kemuddian data ADCnya di simpan kedalam 100 data yg mewakili 1 hz nya

      Delete
    2. maaf ni mas, boleh diberikan contoh..
      saya blm pernah kombinasi adc dgn interup.
      mohon bantuannya..
      terima kasih

      Delete
    3. maaf sbelumnya utuk data 100Hz itu maksudnya 0-100 hz sama dengan 0-255 ADC 8bit atau 0-1023 ADC 10bit?

      Delete
    4. This comment has been removed by the author.

      Delete
    5. sinyal inputan frekuensinya max 100 - 120 Hz konstan dari fungtion generator.
      saya menggunakan 10bit.

      minta tlg contohnya mas caranya.
      terima kasih

      Delete
    6. biar data frekuensi dengan nilai max td dapat termonitoring saya monitor data perubahannya.

      Delete
    7. memangnya tegangan yg keluar dari FG dengan freq 100-120 hz tersebut brp volt?

      sy masih belum ngerti konsep anda soalnya :-?

      Delete
    8. outputnya max 5 volt dr freq max 120 Hz dengan ADC 10 bit 1023 gan.
      sy mau nyoba buat frequensi meter.

      Delete
    9. jika bisa mas samplingnya diatur gitu..
      keren kayaknya..
      (y)

      Delete
  7. Mau nanya mas bagaimana membuat delay ini tapi program lain masih jalan? kayak di arduino itu menggunakan millis, bagaimana dengan menggunakan cvavr? butuh bantuannya mas,. thanks :)

    ReplyDelete
    Replies
    1. memangnya anda mau buat delay untuk apa? kalau program lain tetep jalan itu bukan delay namanya mas, yang pasti beda konsep dengan delay, dan setau saya milis itu bukan delay dia hanya untuk membalikan nilai milisecond dari delay saat program di start, dan akan kembali ke nol saat overflow

      Delete
  8. mas saya butuh delay di atmega16 sampe dengan 90.000 ms (90 detik) tapi selalu eror dan maksimal delay hanya 65.000 (65 detik) apa bisa dibuat sampai 90 detik mas ?

    ReplyDelete
    Replies
    1. bisa kok mas mau dibuat 90 detik tapi sedikit di edit scriptnya, seperti ini
      #include
      unsigned long x=0;

      interrupt [TIM0_OVF] void timer0_ovf_isr(void)
      {
      TCNT0=0xF8;

      x++;
      }

      void tunda(unsigned long waktu)
      {
      TIMSK=0x01; //inisialisasi untuk mengaktifkan interrupt timer0
      while (x<waktu){} //padasaat nilai x lebih kecil dari waktu maka tidak melakukan apa-apa
      x=0; //jika nilai x lebih besar dari waktu maka nilai x reset jadi 0 (nol)
      TIMSK=0x00; //inisialisasi untuk menon aktifkan interrupt timer0
      }

      void main(void)
      {

      PORTA=0x00;
      DDRA=0x03; //setting PORTA.1 dan PORTA.2 sebagai output


      TCCR0=0x05; //setting timer0 dengan prescaler 1024
      TCNT0=0xF8; //nilai timer value dari hasil perhitungan timer 8 bit
      OCR0=0x00; //pin OCR0 tidak di aktifkan


      TIMSK=0x01; //inisialisasi untuk pengaktifan interrupt timer0


      #asm("sei") //variabel global interrupt

      while (1) //loop forever
      {
      PORTA.0=1; //led pada PORTA.0 aktif
      tunda(90000); // tunda 1000ms
      PORTA.0=0; //led pada PORTA.0 mati
      tunda(90000); //tunda 1000ms
      }
      }

      harus nya dengan mengubah tipe data saja sudah bisa mengunakan nilai 90000, tapi jika masih error bisa hubungi saya via email rino@noosite.com

      Delete
    2. terimakasih banyak mas.. nanti kalo saya punya pertanyaan akan saya email langsung.

      Delete
    3. sama-sama mas semoga bermanfaat

      Delete
  9. terimakasih mas rino , sangat bermanfaat ilmunya

    ReplyDelete
  10. Mas mau tanya, ini kn saya mengeset timer 1dtik tp semua program yng sy buat kok berpengaruh ya?
    Jadi awalnya adcnya berubah cepet, stelah sya masukkan beberapa program yng lebih kompleks kok kcepatn eksekusi program. Mengikuti timernya ya
    Mohon pencerahannya tq

    ReplyDelete
  11. Mas saya mau tanya,
    Saya kan bikin atmega 16
    Saya mau memprogram buzzer dan seven segmen menyala selama 500ms / 0,5 dtk tapi di kejadian itu Aku mau lampu led menyala berurutan dari atas ke bawah bergantian/ beriringan .

    Jadi yang saya tanyakan itu gimana cara membuat delay dalam delay?
    Kalau di dalam konsep yang mau aku terapkan you harus memperpanjang delay dari buzzer dan seven segmen agar lampu led bisa lebih lambat pergeraknnya atau gimana mas.

    ReplyDelete

Bantu Donasi untuk memperpanjang sewa domain serta mendukung perkembangan blog ini!
Dengan cara klik iklan / sponsor yang tertera pada blog ini!

Salam Admin,

Rino Christianto

Attention

Most of the sourced material posted in this site is posted according to the "fair use" doctrine of copyright law for non-commercial news reporting, education and discussion purposes. we comply with all takedown requests

Most Viewed

Followers

Category

Robotik (15) Elektronika (14) Download (12) Microcontroller (12) Tutorial (11) Software (10) Arduino (9) Bahasa C (7) pengumuman (7) Berita (6) KRI 2014 (6) teknologi (6) AVR (5) Design (5) PCB (5) C++ (4) Cadsoft (4) Eagle (4) Rangkaian (4) CodeVisionAVR (3) Linux (2) Sensor (2) VB (2) Visual Basic (2) Visual Basic 2012 (2) full (2) 6.2.0 (1) C# (1) Hujan (1) I2C (1) PLC (1) Pemandangan (1) SPI (1) Sound Activation (1) Unik (1) mudah (1) tone decoder (1) tone detector (1)