Penulis Topik: [ASK] pemrograman AVR output suara melalui SD Card  (Dibaca 5150 kali)

0 Anggota dan 1 Pengunjung sedang melihat topik ini.

Offline takalamingan

  • Newbie
  • *
  • Tulisan: 1
[ASK] pemrograman AVR output suara melalui SD Card
« pada: Oktober 26, 2011, 01:28:10 PM »
  • Publish
  • mau tanya nih,,,saya kan mau buat proyek pake mikrokontroler ATMEGA32 trus ngeluarin suara berformat WAV dari SD Card,,,sistemnya FAT,,,saya ambil dari elm-chan,,,nah yang mau saya tanyakan bagaimana cara memanggilnya???kalau untuk memanggil teks sudah bisa,,,saya bingung cara memanggil suaranya,,,setelah saya lompat pake "f_lseek" untuk mengabaikan headernya apa yang harus saya program lagi untuk memanggil byte suara sampai habis,,,apakah memakai f_read atau f_forward???kalau dibaca tutorialnya saya lebih prefer pakai f_forward karena langsung streaming dari SD Card ke output tanpa adanya buffer,,,mohon pencerahannya bagaimana contoh program untuk memanggil suara pakai syntax tersebut...soalnya kalau saya baca dari contohnya elm-chan jadi bingung,,,saya pakai Code Vision buat pemrogramannya,,,

    Offline Iccank Devilz

    • Newbie
    • *
    • Tulisan: 13
      • http://www.zer07even.com
    Re:[ASK] pemrograman AVR output suara melalui SD Card
    « Jawab #1 pada: Oktober 29, 2011, 02:37:26 PM »
  • Publish
  • agak rumit kyaknya nih..
     konek1 konek1 konek1 konek1 konek1 konek1
    Robotic & Microcontroller @ http://www.zer07even.com

    Offline M Febriansyah

    • Full Member
    • ****
    • Tulisan: 173
    • SINTESA IKAN LAPER 3
    Re:[ASK] pemrograman AVR output suara melalui SD Card
    « Jawab #2 pada: November 19, 2011, 12:20:10 PM »
  • Publish
  • Waduuuh...ga pernah pake SD Card, paling pake ISD....sama kayak iccank BINUN??? nyerah1
    IKAN LAPER
    PENDIDIKAN PELATIHAN PENYIAR & REPORTER

    Offline dian

    • Full Member
    • ****
    • Tulisan: 152
    Re:[ASK] pemrograman AVR output suara melalui SD Card
    « Jawab #3 pada: Desember 07, 2011, 03:42:02 AM »
  • Publish
  • mau tanya nih,,,saya kan mau buat proyek pake mikrokontroler ATMEGA32 trus ngeluarin suara berformat WAV dari SD Card,,,sistemnya FAT,,,saya ambil dari elm-chan,,,nah yang mau saya tanyakan bagaimana cara memanggilnya???kalau untuk memanggil teks sudah bisa,,,saya bingung cara memanggil suaranya,,,setelah saya lompat pake "f_lseek" untuk mengabaikan headernya apa yang harus saya program lagi untuk memanggil byte suara sampai habis,,,apakah memakai f_read atau f_forward???kalau dibaca tutorialnya saya lebih prefer pakai f_forward karena langsung streaming dari SD Card ke output tanpa adanya buffer,,,mohon pencerahannya bagaimana contoh program untuk memanggil suara pakai syntax tersebut...soalnya kalau saya baca dari contohnya elm-chan jadi bingung,,,saya pakai Code Vision buat pemrogramannya,,,

    prinsipnya setelah kita baca struktur dari FAT nya, kita akan tau file wav yg mau kita baca ada di physical sector mana, lalu baca sector demi sector sampai file habis. beberapa catatan:
    *. perhatikan format  dari wav tsb (mono/stereo, dan sample ratenya)
    *. nilai sample disimpan dalam complement dua

    Offline Ri-5-am

    • Full Member
    • ****
    • Tulisan: 117
    Re:[ASK] pemrograman AVR output suara melalui SD Card
    « Jawab #4 pada: Desember 07, 2011, 05:36:35 PM »
  • Publish
  • masalahnya, atmega32 itu kalo saya tak salahjenis mikrokontroller 8bit ya.. apa bisa hasilkan musik hanya dnegan 8bit...?dari beberapa literatur di internet, beberapa mengatakan terlalu mepet untuk mengolah suara dengan mikrokontroller 8bit... TAPI, ada bebrapa yang bisa, pake PIC seri 16F. coba lihat di youtube...

    kalo ada literaturnya.. jujyr saya dari beberapa bulan yang lalu sudah coba cari info ato literature yang membahas masalah ini... ada proyek kecil... cari1

    Offline M Febriansyah

    • Full Member
    • ****
    • Tulisan: 173
    • SINTESA IKAN LAPER 3
    Re:[ASK] pemrograman AVR output suara melalui SD Card
    « Jawab #5 pada: Desember 12, 2011, 10:16:25 AM »
  • Publish
  • Mas Dian beri contoh listing and rangkaiannya biar kita coba-coba...
    IKAN LAPER
    PENDIDIKAN PELATIHAN PENYIAR & REPORTER

    Offline dian

    • Full Member
    • ****
    • Tulisan: 152
    Re:[ASK] pemrograman AVR output suara melalui SD Card
    « Jawab #6 pada: Pebruari 25, 2012, 06:32:42 PM »
  • Publish
  • Mas Dian beri contoh listing and rangkaiannya biar kita coba-coba...

    saya suka males bikin skema.. caranya mudah kok..
    coba ikutin step berikut, kalau belum berhasil nanti saya share lebih jauh ya..

    1. hubungkan SD card ke SPI Port (kalau mau cepat) atau ke port/pin manapun (bit bang) selain Port A dan Port B
    2. hubungkan port A dan port C (16 bit) ke rangkaian R2R DAC (16 bit DAC dengen 2 jenis resistor) coba google aja R2R DAC..
    3. baca sector dari MMC/SD Card (per 512 byte) masukkan kedalam array
    4. proces array per 16 bit data, invert bit ke 16 (MSB)
    5. keluarkan 16 data tsb ke port A dan Port B

    note: beri delay secukupnya sesuai dgn sample rate nya.. biar gak terlalu ngebut suaranya
    sejauh yg saya uji cukup bersaing kualitasnya.

    berikut ada penggalan program dalam BASCOM yg saya pakai, menggunakan nanoFAT (made in dewe)

    '*******************************************************************************
    '  micro FAT32 access for read only wav player
    '  Dian Kurniawan v0.1b
    '  2005
    '*******************************************************************************
    $regfile = "m16def.dat"
    '$crystal = 7372800
    $crystal = 14745600
    $baud = 57600

    '*******************************************************************************
    '  Overlay Memory
    '*******************************************************************************
    Dim Buff(512) As Byte
    Dim Fileinfo(128) As Long At Buff Overlay
    '*******************************************************************************
    '  MBR and Partition
    '*******************************************************************************
    Dim Mbr(512) As Byte At Buff Overlay
    Dim Map_part_type_1 As Byte At Mbr(1) + 450 Overlay
    Dim Map_lba_start_1 As Long At Mbr(1) + 454 Overlay
    Dim Map_part_type_2 As Byte At Mbr(1) + 466 Overlay
    Dim Map_lba_start_2 As Long At Mbr(1) + 470 Overlay
    Dim Map_signatur_mbr As Word At Mbr(1) + &H1FE Overlay

    '*******************************************************************************
    '  Boot Record
    '*******************************************************************************
    Dim Bootrec(512) As Byte At Buff Overlay
    Dim Map_bytspersec As Word At Bootrec(1) + &H0B Overlay
    Dim Map_secperclus As Byte At Bootrec(1) + &H0D Overlay
    Dim Map_rsvdseccnt As Word At Bootrec(1) + &H0E Overlay
    Dim Map_numfats As Byte At Bootrec(1) + &H10 Overlay
    Dim Map_fatsz32 As Long At Bootrec(1) + &H24 Overlay
    Dim Map_rootclus As Long At Bootrec(1) + &H2C Overlay
    Dim Map_signature_boot As Word At Bootrec(1) + &H1FE Overlay

    '*******************************************************************************
    '  microFAT variable
    '*******************************************************************************
    Dim Lba_start As Long
    Dim Fat_begin_lba As Long
    Dim Cluster_begin_lba As Long
    Dim Bpb_secperclus As Byte
    Dim Bpb_rootclus As Long
    Dim Bpb_rsvdseccnt As Word
    Dim Bpb_numfats As Byte
    Dim Bpb_fatsz32 As Long

    '*******************************************************************************
    '  File Handling
    '*******************************************************************************
    Dim Fsize As Long
    Dim Start_cluster As Long
    Dim End_cluster As Long

    Dim Addr As Long
    Dim Saddr As Long
    Dim Sector_pointer As Long

    '*******************************************************************************
    '  DAC Part
    '*******************************************************************************
    Dim Pcml As Byte
    Dim Pcmh As Byte

    Dim State As Byte
    Dim Dstate As Bit
    Dim Idx As Word

    '*******************************************************************************
    '  MMC SPI Part
    '*******************************************************************************
    Dim Dat As Byte
    Dim Resp As Byte
    Const Msbl = 0

    Dim I As Word
    Dim J As Word

    Dim Chain_loop As Word

    Dim Cmd As String * 8
    Dim Rx As Byte

    '*******************************************************************************
    '  Sub Routine Declaration
    '*******************************************************************************
    Declare Sub Readsector(byval Secnum As Long)
    Declare Sub Playsector(byval Secnum As Long)
    Declare Sub Playcluster(byval Secnum As Long)
    Declare Sub Initmmc()
    Declare Sub Initmicrofat()
    Declare Sub Getbootrecord()
    Declare Sub Playmmc
    Declare Sub Printsector

    '*******************************************************************************
    '  Peripheral Config
    '*******************************************************************************
    'Config Spi = Soft , Din = Pinb.3 , Dout = Portb.1 , Ss = Portb.0 , Clock = Portb.2
    'Spiinit

    'Cs Alias Portc.0
    'Mosi Alias Portc.1
    'Clk Alias Portc.2
    'Miso Alias Pinc.3

    Cs Alias Portb.0
    Mosi Alias Portb.1
    Clk Alias Portb.2
    Miso Alias Pinb.3

    Set Cs
    Set Clk
    Set Mosi

    Config Porta = Output
    Config Portb = Output
    Config Portc = Output
    Config Portd = Output

    Config Pinb.0 = Output
    Config Pinb.1 = Output
    Config Pinb.2 = Output
    Config Pinb.3 = Input
    Config Pinb.4 = Input
    Config Pinb.5 = Input

    Config Watchdog = 2048

    Waitms 100

    '*******************************************************************************
    '  Main Program
    '*******************************************************************************
    'Enable Urxc
    'Enable Interrupts
    'On Urxc Change_track
    '
    '   Open "comd.6:57600,8,n,1" For Output As #1;
    '   Waitms 200

    Cmd = ""

    Porta = &HFF
    Portb = &HFF
    Portc = &HFF
    Portd = &HFF

    State = &HFF
    Dstate = 1

    Main:
       Print "MMC 1.0"
       Set Cs
       Waitms 500
       'Start Watchdog
       Call Initmmc
       'Stop Watchdog
       Print "MMC init success"
       Call Initmicrofat
       Print "MMC MicroFat success"
       Call Playmmc
       Goto Main

    End

    '*******************************************************************************
    '  init microfat
    '  get partition information
    '*******************************************************************************
    Sub Initmicrofat()
       Local Calc As Long
       Call Readsector(0)

       If Map_signatur_mbr = &HAA55 Then
          If Map_part_type_1 = &H0B Or Map_part_type_1 = &H0C Then
             Lba_start = Map_lba_start_1
             Call Getbootrecord
          Else
             If Map_part_type_2 = &H0B Or Map_part_type_1 = &H0C Then
                Lba_start = Map_lba_start_2
                Call Getbootrecord
             Else
                 Print "Error, #2"                                                  '"microfat Doesn't Recorg Partition Type "
             End If
          End If
       Else
          Print "Error, #1"                                                         '"microFat doesn't recorg Master Boot Record"
       End If


       Fat_begin_lba = Lba_start + Bpb_rsvdseccnt
       Cluster_begin_lba = Lba_start + Bpb_rsvdseccnt
       Calc = Bpb_fatsz32 * Bpb_numfats
       Cluster_begin_lba = Cluster_begin_lba + Calc

    End Sub

    '*******************************************************************************
    '  Getbootrecord
    '*******************************************************************************
    Sub Getbootrecord()
       Sector_pointer = Lba_start * 512
       Call Readsector(sector_pointer)
       If Map_signature_boot = &HAA55 Then
          Bpb_secperclus = Map_secperclus
          'Bpb_secperclus = Bpb_secperclus - 1
          Bpb_rootclus = Map_rootclus
          Bpb_rsvdseccnt = Map_rsvdseccnt
          Bpb_numfats = Map_numfats
          Bpb_fatsz32 = Map_fatsz32
       Else
          Print "Error, #3"                                                         '"microFat doesn't recorg Partition Boot Record"
       End If

    End Sub

    '*******************************************************************************
    '  init MMC device
    '*******************************************************************************
    Sub Initmmc
       Set Cs
       Dat = &HFF
       For I = 1 To 80
          Reset Clk
          Waitus 1
          Set Clk
          Waitus 1
       Next I
       Reset Cs

       Resp = 255
       Dat = &H40
       Addr = 0
       Shiftout Mosi , Clk , Dat , Msbl
       Shiftout Mosi , Clk , Addr , Msbl
       Dat = &H95
       Shiftout Mosi , Clk , Dat , Msbl
       Shiftout Mosi , Clk , Dat , Msbl
       While Resp <> &H01
          Shiftin Miso , Clk , Resp , Msbl
       Wend

       Set Cs
       Dat = &HFF
       Shiftout Mosi , Clk , Dat , Msbl

       While Resp <> &H00
          Reset Cs
          Waitms 100
          Dat = &H41
          Addr = 0
          Shiftout Mosi , Clk , Dat , Msbl
          Shiftout Mosi , Clk , Addr , Msbx
          Dat = &HFF
          Shiftout Mosi , Clk , Dat , Msbl
          Shiftout Mosi , Clk , Dat , Msbl
          Shiftin Miso , Clk , Resp , Msbl
          Set Cs
          Waitms 100
       Wend
       Shiftout Mosi , Clk , Dat , Msbl
    End Sub

    '*******************************************************************************
    '  Readsector
    '*******************************************************************************
    Sub Readsector(byval Secnum As Long)
       Local Sec_idx As Word

       Reset Cs
       Dat = &H51
       Addr = Secnum
       Shiftout Mosi , Clk , Dat , Msbl
       Shiftout Mosi , Clk , Addr , Msbx
       Dat = &HFF
       Shiftout Mosi , Clk , Dat , Msbl

       Shiftin Miso , Clk , Resp , Msbl
       While Resp <> 0
          Shiftin Miso , Clk , Resp , Msbl
       Wend

       While Resp <> &HFE
          Shiftin Miso , Clk , Resp , Msbl
       Wend

       For Sec_idx = 1 To 512
          Shiftin Miso , Clk , Resp , Msbl
          Buff(sec_idx) = Resp
       Next Sec_idx

       Shiftin Miso , Clk , Resp , Msbl
       Shiftin Miso , Clk , Resp , Msbl

       Set Cs
       Shiftout Mosi , Clk , Dat , Msbl

    End Sub

    '*******************************************************************************
    '  Play
    '*******************************************************************************
    Sub Playmmc
       Local Sec_idx As Byte
       Local Sec_count As Long

       Cluster_begin_lba = Cluster_begin_lba * 512
       Call Readsector(cluster_begin_lba )
       Fsize = Fileinfo(8)

       Start_cluster = Bpb_secperclus * 512
       Start_cluster = Start_cluster + Cluster_begin_lba

       End_cluster = Fsize
       End_cluster = End_cluster + Start_cluster

       Sec_count = Start_cluster
       'Print Hex(cluster_begin_lba)
       'Print Hex(sec_count)
       'Print "end sector :" ; Hex(end_cluster)
       'Print Hex(fsize )

       Reset Cs
       Dat = &H52
       Shiftout Mosi , Clk , Dat , Msbl
       Shiftout Mosi , Clk , Start_cluster , Msbx
       Dat = &HFF
       Shiftout Mosi , Clk , Dat , Msbl

       Start Watchdog
       Shiftin Miso , Clk , Resp , Msbl
       While Resp <> 0
          Shiftin Miso , Clk , Resp , Msbl
       Wend
       Stop Watchdog

       Start Watchdog
       While Resp <> &HFE
          Shiftin Miso , Clk , Resp , Msbl
       Wend
       Stop Watchdog

       Do
          Start Watchdog
          While Resp <> &HFE
             Shiftin Miso , Clk , Resp , Msbl
          Wend
          Stop Watchdog

          For Sec_idx = 0 To 255
             Shiftin Miso , Clk , Resp , Msbl
             Pcml = Resp
             Shiftin Miso , Clk , Resp , Msbl
             Pcmh = Resp
             Toggle Pcmh.7
             Porta = Pcmh
             Portc = Pcml
             Waitus 2
          Next Sec_idx

          Shiftin Miso , Clk , Resp , Msbl
          Shiftin Miso , Clk , Resp , Msbl
          Shiftin Miso , Clk , Resp , Msbl
          Sec_count = Sec_count + 512
          'Print "current :" ; Hex(sec_count)

       Loop Until Sec_count > End_cluster
       'Loop Until Sec_count > 2139808
                                                     'Until Sec_idx > End_cluster
       Set Cs
       Shiftout Mosi , Clk , Dat , Msbl
       Shiftout Mosi , Clk , Dat , Msbl

    End Sub





     



    Offline RvP10

    • Newbie
    • *
    • Tulisan: 1
    Re:[ASK] pemrograman AVR output suara melalui SD Card
    « Jawab #7 pada: Oktober 22, 2012, 06:51:20 PM »
  • Publish
  • mau tanya nih,,,saya kan mau buat proyek pake mikrokontroler ATMEGA32 trus ngeluarin suara berformat WAV dari SD Card,,,sistemnya FAT,,,saya ambil dari elm-chan,,,nah yang mau saya tanyakan bagaimana cara memanggilnya???kalau untuk memanggil teks sudah bisa,,,saya bingung cara memanggil suaranya,,,setelah saya lompat pake "f_lseek" untuk mengabaikan headernya apa yang harus saya program lagi untuk memanggil byte suara sampai habis,,,apakah memakai f_read atau f_forward???kalau dibaca tutorialnya saya lebih prefer pakai f_forward karena langsung streaming dari SD Card ke output tanpa adanya buffer,,,mohon pencerahannya bagaimana contoh program untuk memanggil suara pakai syntax tersebut...soalnya kalau saya baca dari contohnya elm-chan jadi bingung,,,saya pakai Code Vision buat pemrogramannya,,,

    saya mau bantu jawab buat agan yg stu ini...
    maaf meskipun postingannya uda usang yng penting msh bisa bermanfaat buat orng lain...hehehehe...
    kalo menurut saya, cara agan dian itu juga bener..tp ini cara saya sendiri...

    kalo mau baca file atau baca karakter dari mmc/sdcard memakai f_read itu juga bisa..tp menurut saya masih terlalu ribet...
    coba agan gunakan program berikut buat baca karakter dari file di mmc/sdcard..

    void spi_init(void)
    {
    DDRB.0 = 1;
    DDRB.2 = 1;
    DDRB.3 = 0;
    DDRB.1 = 1;
    SPCR = 0b01011110 ;
    SPSR = 1;
    PORTB.0= 0;
    }

    char Command(char cmd, unsigned int AdrH, unsigned int AdrL, char CRCbits )
    {
    spi(0xFF);
    spi(cmd);
    spi((unsigned char)(AdrH >> 8));
    spi((unsigned char)AdrH);
    spi((unsigned char)(AdrL >> 8));
    spi((unsigned char)AdrL);
    spi(CRCbits);
    spi(0xFF);
    return spi(0xFF);
    }

    char mmc_init(void)
    {
    char i;
    PORTB.0= 1;
    for(i=0; i < 10; i++) spi(0xFF);
    PORTB.0= 0;
    if (Command(0x40,0,0,0x95) == 1)
    {
    lcd_gotoxy(0,0);
    lcd_putsf("CMD0 sukses");
    delay_ms(1000);
    lcd_clear();
    }
    else
    goto mmcerror;

    st:
    if (Command(0x41,0,0,0xFF) ==0)
    {
    lcd_gotoxy(0,0);
    lcd_putsf("CMD1 sukses");
    delay_ms(1000);
    lcd_clear();
    }
    else
    goto st;
     
    SPCR = 0b01011100;
    SPSR = 1;
    return 1;
    mmcerror:
    lcd_gotoxy(0,0);
    lcd_putsf("CMD0 Error!");
    delay_ms(1000);
    lcd_clear();
    return 0;
    }

    char set_blok(unsigned int block)

    if(Command(0x50,0,block,0xFF) != 0)
    {
    lcd_gotoxy(0,0);
    lcd_putsf("Blok Set Error!");
    delay_ms(1000);
    lcd_clear();
    return 0;
    }
    else
    lcd_gotoxy(0,0);
    lcd_putsf("Blok Set sukses");
    delay_ms(1000);
    lcd_clear();
    return 1;
    }
    int ambil(void)
    {
    hi=0x000B;
    lo=0x6600;
    response=Command(0x51,hi,lo,0xFF);
    if(response!=0)
    {
    lcd_gotoxy(0,0);
    lcd_putsf("MMC: read error\n");
    sprintf(lcd_buffer,"response = %d", response);
    lcd_puts(lcd_buffer);
    }
            startToken = 0;
            while(startToken == 0)
            {
            response = spi(0xFF);
            sprintf(lcd_buffer,"response2 = %d", response);
            lcd_puts(lcd_buffer);
            delay_ms(10);
            lcd_clear();
            if (response == 0xFE) startToken = 1;
            }
                    for(i=0; i < 512; i++) {
                    recvd = spi(0xFF);
                    }
            spi(0xFF);
            spi(0xFF); 
                    lo=0x200+(unsigned long int)lo;
                    if(lo>0xFFFF){
                    lo=0;
                    hi++;
                    }
                    OCR1A=128;
            return 0;
    }

    while(1)
    {
    ambl();
    }

    program diatas uda bisa digunakan baca mmc/sdcard

    ===cara kedua buat baca file berupa suara===
    yang harus disiapin agan :
    1.mikrophone buat mengisi suara ke software bisa buat sendiri ato beli..
    2.software audacity ato ace of wav sama aja..
    3.buat seting rekaman menjadi mono 8bit dan dengan frekuensi sampling 8000.
    4.setelah selesai merekam, simpan file hasil rekaman dengan format (.wav) atau (.raw)
    5.download software winhex untuk melihat alamat heksa pada mmc agan.
    6.menyimpan file wav harus pada direktori yang tepat..(ane uda bisa dan harus pake bnyk rumus gan..kebanyakan kalo saya tulis d sinni..mbah gugel banyak kq..hehehehe...ato kalo mau email saya aja...)
    7.mmc akan membaca file tiap 512 bit...
    8.persiapan uda selesai sekarang keprogramnya gan...(programnya sama kayak baca karakter..tp beda nya harus ditambah PWM untuk conversi ke analognya..kalo pake rangkaian DAC R2R juga boleh..)
    9.program baca file suara pada mmc :
    int ambil(void)
    {
    hi=0x000B;
    lo=0x6600;
    response=Command(0x51,hi,lo,0xFF);
    if(response!=0)
    {
    lcd_gotoxy(0,0);
    lcd_putsf("MMC: read error\n");
    sprintf(lcd_buffer,"response = %d", response);
    lcd_puts(lcd_buffer);
    }
            startToken = 0;
            while(startToken == 0)
            {
            response = spi(0xFF);
            sprintf(lcd_buffer,"response2 = %d", response);
            lcd_puts(lcd_buffer);
            delay_ms(10);
            lcd_clear();
            if (response == 0xFE) startToken = 1;
            }
                    for(i=0; i < 512; i++) {
                    recvd = spi(0xFF);
                    OCR1A=recvd;
                    delay_us(125);
                    }
            spi(0xFF);
            spi(0xFF); 
                    lo=0x200+(unsigned long int)lo;
                    if(lo>0xFFFF){
                    lo=0;
                    hi++;
                    }
                    OCR1A=128;
            return 0;
    }
    =============================================================
    ane jelaskan yg penting gan...
    hi=0x000B; //alamat awal direktori pada mmc saya bit high
    lo=0x6600;
    // bit low

    jadi kalau pada mmc alamat direktori nya jadi 0xB6600...
    =======================================================================
    for(i=0; i < 512; i++) {        //1 sektor pada mmc hanya mampu membaca tiap 512 bit data.
                    recvd = spi(0xFF);  // dengan menggunakan spi data dibaca dan ditampung ke recvd
                    OCR1A=recvd;      //sebagai pengganti R2R saya menggunakan PWM timer 1 untuk konversi dari digital ke analog
                    delay_us(125);    //delay yang saya gunakan agar suara terdengar seperti suara asli..
                    }

    =====================================================================

     lo=0x200+(unsigned long int)lo; // bagian program ini untuk pembacaan direktori multi read...tanpa program ini pembacaan direktori hanya akan
                    if(lo>0xFFFF){ //               berulang ke sektor 1 terus....
                    lo=0; //
                    hi++; //
                    }//
                    OCR1A=128;
    //
    ===================================================================

    cuma itu yang bisa saya bagi ke agan atau agan2 yang baca...
    bisa tidaknya program diatas tergantung kerja keras dan usaha agan...
     ;D

    Offline purwanto-amm

    • Administrator
    • Hero Member
    • ********
    • Tulisan: 1065
    • Nikola Tesla
      • purwanto-apriana
    Re:[ASK] pemrograman AVR output suara melalui SD Card
    « Jawab #8 pada: Oktober 23, 2012, 08:38:07 PM »
  • Publish
  • alangkah baik nya ada rangkayan yg bisa di tampilkan
    Kontak INBOX ke FB
    facebook.com/purwanto.apriana

    BLOG
    purwanto1987.wordpress.com

    Offline M Febriansyah

    • Full Member
    • ****
    • Tulisan: 173
    • SINTESA IKAN LAPER 3
    Re:[ASK] pemrograman AVR output suara melalui SD Card
    « Jawab #9 pada: Oktober 31, 2012, 09:55:36 AM »
  • Publish
  • alangkah baik nya ada rangkayan yg bisa di tampilkan

    Setuju.....buat para agan-agan yang jago mungkin gampang, tapi buat kita-kita yang pemula sulit apalagi list programnya panjang banget
    Tampaknya para master masih tetap tidak rela berbagi pengetahuannya....masih banyak yang menyimpan-yimpan ilmunya...ternyata
    IKAN LAPER
    PENDIDIKAN PELATIHAN PENYIAR & REPORTER

    Offline dian

    • Full Member
    • ****
    • Tulisan: 152
    Re:[ASK] pemrograman AVR output suara melalui SD Card
    « Jawab #10 pada: Januari 07, 2013, 12:31:27 AM »
  • Publish
  • alangkah baik nya ada rangkayan yg bisa di tampilkan

    Setuju.....buat para agan-agan yang jago mungkin gampang, tapi buat kita-kita yang pemula sulit apalagi list programnya panjang banget
    Tampaknya para master masih tetap tidak rela berbagi pengetahuannya....masih banyak yang menyimpan-yimpan ilmunya...ternyata

    saya tidak merasa jago, biasa saja tapi saya tertarik untuk merespon statement "tidak rela", menurut saya alangkah aneh nya bila ada sesuatu yang tidak sesuai dengan apa yang anda harapkan lalu mengambil kesimpulan seperti itu. seolah-olah ada bisa menilai seseorang dengan lengkap, apakah ada tau kesibukan org tsb, atau bahkan apa anda tau apakah orang tersebut masih dalam keadaan sehat dsb, berusahalah untuk selalu berfikir positif.

    buat saya pribadi dalam membuat suatu project saya hampir tidak pernah menggambar rangkaian, semua rangkaian ada di PCB yang saya buat, sehingga menggambar skema tentu memakan waktu lagi, kalau salah karena salah no pin nanti malah di cap menjerumuskan, makanya untuk membuat skema benar2 perlu waktu khusus dan saya tidak sulit untuk melungkan waktu untuk itu 

    Offline rachman

    • Newbie
    • *
    • Tulisan: 26
    Re:[ASK] pemrograman AVR output suara melalui SD Card
    « Jawab #11 pada: Maret 20, 2013, 01:18:40 PM »
  • Publish
  • makai kata "tidak rela" lagi ah.. hiks otakku masih "tidak rela" klo diisi coding diatas..   mungkin ada materi yg lebih mudah dicerna dulu pak ?
    buat pemanasan otakku yang beku ini.   ini masih mending listingnya pendek.. (dibanding source code tugas akhir sistem informasi point of sales minimarket :p)
    tahapan ilmu yg harus dilalui (lulus dulu di semester awal)  , teknik digital, Pemrograman Dasar, baru masuk mata kuliah mikrocontroller..
    coba yang ini  http://avrpcm.blogspot.com/2010/11/playing-8-bit-pcm-using-any-avr.html
    mampir ke blog nya pak purwanto nemu beberapa yang menarik untuk nglangi stress bikin LED dengan hanya satu batterai 1,5V  http://www.bigclive.com/joule.htm
     

    Offline dian

    • Full Member
    • ****
    • Tulisan: 152
    Re:[ASK] pemrograman AVR output suara melalui SD Card
    « Jawab #12 pada: Desember 20, 2013, 06:20:44 AM »
  • Publish
  • makai kata "tidak rela" lagi ah.. hiks otakku masih "tidak rela" klo diisi coding diatas..   mungkin ada materi yg lebih mudah dicerna dulu pak ?
    buat pemanasan otakku yang beku ini.   ini masih mending listingnya pendek.. (dibanding source code tugas akhir sistem informasi point of sales minimarket :p)
    tahapan ilmu yg harus dilalui (lulus dulu di semester awal)  , teknik digital, Pemrograman Dasar, baru masuk mata kuliah mikrocontroller..
    coba yang ini  http://avrpcm.blogspot.com/2010/11/playing-8-bit-pcm-using-any-avr.html
    mampir ke blog nya pak purwanto nemu beberapa yang menarik untuk nglangi stress bikin LED dengan hanya satu batterai 1,5V  http://www.bigclive.com/joule.htm

    susah juga ya kalau otaknya sudah malas duluan dan mau yang gampang saja  :)
    di kasih komplit protes di kasih dikit nanti katanya pelit...

     


    Facebook Comments