STM32F407-MikroC Kitabı Çıktı...

Başlatan LukeSkywalker, 17 Ocak 2014, 18:39:55

LukeSkywalker

16KHz örnekleme yapın. Çıkışa filtreleme yapmanız lazım. Alçak geçiren filtre yapın çıkışa... 20KHz'in üzerini filtreleyin.

emre salman

peki hocam 16 khz örnekleme yaptığımda timer kesmesini 16 khze göre ayarladığımda işlem tamam mı oluyor

LukeSkywalker


emre salman

#123
//Timer7 Prescaler :0; Preload = 10499; Actual Interrupt Time = 62,5 us

//Place/Copy this part in declaration section
void InitTimer7(){
  RCC_APB1ENR.TIM7EN = 1;
  TIM7_CR1.CEN = 0;
  TIM7_PSC = 0;
  TIM7_ARR = 10499;
  NVIC_IntEnable(IVT_INT_TIM7);
  TIM7_DIER.UIE = 1;
  TIM7_CR1.CEN = 1;
}

void Timer7_interrupt() iv IVT_INT_TIM7 {
  TIM7_SR.UIF = 0;
  //Enter your code here
}

16 khz lik timer böyle olmayacak mı hocam bir yanlışım mı var ses hala bozuk geliyor hiç anlaşılmıyor bile

mesaj birleştirme:: 31 Mart 2014, 18:42:22

elinde düzgün kayıtlı 8 bit 16 khz wav dosyası olan varsa bir gönderebilir mi acaba bnm wav dosyamda mı sıkıntı var :S

LukeSkywalker

Benim berdigim ornegi kullaniyorsan timer 7 icin 84 Mhz apb2 frekansi var. Buna gore hesapla arr degerini.

emre salman

#125
evet sizin gönderdiğiniz örneği kullanıyordum hep 168 mhz olarak düşündüm mcu 168de koştuğu için hiç timer frekansı aklıma gelmiyordu halbuki kitabın 129. sayfasında bahsediyor bundan anladım hatayı burda yapıyordum demekki hocam diyorum bende neden çok farklı çıkıyor sağolun hocam

mesaj birleştirme:: 31 Mart 2014, 21:25:00

herşey tamam şuan ama ses bilgisayardaki gibi kaliteli çıkmıyor nezle gibi çıkıyor 8 bit 22khz de deniyorum timeri 22khze göre ayarladım veriyi 4 bit öteleyip sesi yükselttim biraz daha şimdi son sorum bu sesi nasıl daha kaliteli yapabilirim bilgisayardakine yakın sürekli bir cızırdama nezle gibi çıkıyor
bunu nasıl düzeltebilirim filtre uyguladıgımda düzelir mi birde buna uygun filtre nasıldır

emre salman

şimdide başka bir şeyi merak etmeye başladım dahili dac yi kullanmadan discovery kitinin üzerindeki CS43L22 dac ses chipini nasıl kullanabilirim kitapta anlatılamış sanırım bilgisi olan varmı bu konuda

LukeSkywalker

Sana bir tavsiye, azıcık datasheet karıştrmayı öğren. İngilizcen yoksa öğren. Bu azimle eminim başarırsın. Sadece birazcık araştırma. Bak mesela çipin adını biliyorsun. Şimdi datasheetini bul ve nasıl kulanacağını öğren..

emre salman

bugüne kadar verdiğiniz cevaplar için teşekkür ederim hocam dün gece dediğiniz gibi datasheeti biraz karıştırdım ama ingilizcem zayıf olduğu için fazla birşey anlayamadım bugunde ingilizcesi iyi olan bir arkadasla tekrar datasheete bakıcaz eğerbecerebilirsem buraya gelip nasıl yapıldığını anlatırım
sanırım ses chipiyle ilgili türkçe döküman yok hiç

emre salman

8 bit 22 khz lik bir wav dosyasını oynatırken cızırtılı geliyor bilgisayar hoporleri kullanıyorum ve filtre uyguladım ne yaparsam yapayım o cızırtıyı gideremedim aynı wav dosyasını nerden açarsam açayım böyle bir cızırtı olmuyor acaba sorun nedir nasıl düzeltebilirim

LukeSkywalker

Filtrelemeyi iyi yapamamış olabilirsiniz.

emre salman

başka bir sorun yoktur yani değil mi hocam sizin gönderdiğiniz örnekle uğraşıyorum hala peki örnek bir filtreleme nasıl yapabilirm sizce birde bakır plakette denemedim beard bordda denedim ondanda olabilir mi birde sizin denediğiniz filtre varsa onu nasıl olduğunu öğrenebilir miyim ?


emre salman

cevabınız için teşekkürler hocam

emre salman

#134
herkese iyi günler bu seferde ben sd karttan bir txt dosyası açıp bunun içine yazı yazmak istiyorum mikrocdeki örneği inceledim librarysinide inceledim ama nedense sadece dosyayı açtırabildim ne tarih girdirebildim nede içine yazı yazdırabildim kodları aşağıda veriyorum nerde yanlışım var acaba dosya açılıyor bunda sorun yok ama veri yazamıyorum içine
sbit Mmc_Chip_Select  at GPIOC_ODR.B3;  //MMC kartın CS girişi..
#define buton Button(&GPIOA_IDR,0,100,1)

unsigned long  size=0,i=0,k=0;
char error=0,j=0;
int veri=0;
char file_contents[42];


void kur()
{

GPIO_Digital_Output(&GPIOD_BASE, _GPIO_PINMASK_3| _GPIO_PINMASK_12|_GPIO_PINMASK_13|_GPIO_PINMASK_14|_GPIO_PINMASK_15);
GPIO_Digital_Input(&GPIOA_BASE, _GPIO_PINMASK_0);
SPI1_Init_Advanced(_SPI_FPCLK_DIV64, _SPI_MASTER | _SPI_8_BIT |
                     _SPI_CLK_IDLE_LOW | _SPI_FIRST_CLK_EDGE_TRANSITION |
                     _SPI_MSB_FIRST | _SPI_SS_DISABLE | _SPI_SSM_ENABLE | _SPI_SSI_1,
                     &_GPIO_MODULE_SPI1_PB345);                // PB3= SCK, PB4=MISO, PB5=MOSI
Delay_ms(100);
   if (!Mmc_Fat_Init()) {// FAT init edildikten sonra Hız coşturuluyor..
    GPIOD_ODR.F12=1;
    // reinitialize spi at higher speed
    SPI1_Init_Advanced(_SPI_FPCLK_DIV4, _SPI_MASTER | _SPI_8_BIT |
                       _SPI_CLK_IDLE_LOW | _SPI_FIRST_CLK_EDGE_TRANSITION |
                       _SPI_MSB_FIRST | _SPI_SS_DISABLE | _SPI_SSM_ENABLE | _SPI_SSI_1,
                       &_GPIO_MODULE_SPI1_PB345);
                        GPIOD_ODR.F13=1;
   }
   else if(Mmc_Fat_Init()==1)GPIOD_ODR.F13=1; // Eğer Fat init edilemezse hatayı çözümlemek için...
   else if(Mmc_Fat_Init()==255)GPIOD_ODR.F14=1;
}

void ac()
{
 Mmc_Fat_Assign("emre.txt", 0);
   Mmc_Fat_Set_File_Date(2009, 1, 23, 17, 22, 0);
   Mmc_Fat_Append();                                    // Prepare file for append
   Mmc_Fat_Write(" merhaba dünya\n", 27);   // Write data to assigned file
}


void main() {
kur();
delay_ms(100);
ac();
}


mesaj birleştirme:: 12 Nisan 2014, 23:13:21

sorunu hallettim yukarda verdiğim kodlarda değilmiş sorun :)