AD9833 SIN-GEN ARDUINO IDE(SPI lib.)

Abi cs'yi anladım clock'u anladım ama bu data neye göre ilerliyor onu anlamadım.

kaç kere 1e çıkmış onu sayıyorum kaç kere 0a düşmüş onu sayıyorum çarpıyporum bölüyorum ama yanlış buluyıorum hep

O zaman biraz onun üzerinde kafa yor. Bu çok temel bir konu, kendin çözmen lazım ve bir kere çözdükten sonra bir level atlayacaksın :)
 
çıktı.png

buda paintte yaptığım incelemem
 
Olmadı. Bir de sonucu hem binary hem hex olarak ver.
 
IMG_20220711_145652.jpg

hazır çeviriciler çok güzel işini kolaylaştırıyor fakat ona da alerjim var
 
Emin misin? :dusun2:

Tamam tamam doğru. :D

C++:
void loop()
{
  while (1)
  {
    digitalWrite(CS, LOW);
    SPI.transfer16(0x5378);
    digitalWrite(CS, HIGH);
    delay(100);
  }
}
 
Emin misin? :dusun2:

Tamam tamam doğru. :D

C++:
void loop()
{
  while (1)
  {
    digitalWrite(CS, LOW);
    SPI.transfer16(0x5378);
    digitalWrite(CS, HIGH);
    delay(100);
  }
}
bu mesajları alıp SPI protokol çözümleme olarak ayrı bir konuya taşıyalım mı sadece benim değil Türkiyede maker-temel programcılar olarak hepimiz böyle haberleşmelere bakınca hmmm kare dalga olduğuna göre çalışıyor diyoruz.
 
Yeni bir konuda anlatılabilir evet. Faydası olur.
 
Yeni bir konuda anlatılabilir evet. Faydası olur.
konu altında uart, ı2c gibi haberleşmeleri'de işleyebilriz nasıl olsa SPI'ı öğrendim.

Bir paranoyaklığımda burada var ya alıcı puls kaçırır'da yanlış data alırsa mesala girişteki pulse kaçırırsa 1010011011110001 olarak okur.
 
SPI, I2C gibi protokoller lokaldir ve doğru tasarım yapıldığında bir iletim hatasının olmayacağı varsayılır. Ama uzun kablolar üzerinden veya havada radyo dalgaları ile ilerleyen seri protokoller de var. Bunlarda tabiki sinyalin başına her türlü musibet gelebilir ve o yüzden bunlarda her türlü hata algılama ve düzeltme teknikleri kullanılır.
 
konu altında uart, ı2c gibi haberleşmeleri'de işleyebilriz nasıl olsa SPI'ı öğrendim.

I2C de mantık SPI ile tamamen aynı. Ama UART'da iş farklı. Onun için ayrı bir konu (makale konusu iyi olur) açmak lazım. SPI, I2C, ve UART için böyle makaleler hazırlarsak bunları Temel Elektronik altında sabitleriz.
 
Ben jeneratöre geri döneyim artık skopla spi sinyallerinin yazdığım gibi çıkıp çıkmadığını'da görebilirim.
 
I2C de mantık SPI ile tamamen aynı. Ama UART'da iş farklı. Onun için ayrı bir konu (makale konusu iyi olur) açmak lazım. SPI, I2C, ve UART için böyle makaleler hazırlarsak bunları Temel Elektronik altında sabitleriz.
ben ilertebilirim bunları arabadaki CAN-BUS hattı, vfd'nin üstündeki rs485 modbus hattı, belki bu forumdaki hiçbir üyenin işine ömür boyu yaramayacak shihihlin'in kendi haberleşme hattı
 
Şimdi senin programda üç ana problem kaldı:

1) Bir sürü gereksiz fazlalık kod var.

2) FREQ0 hesabı yanlış

3) hesaplanan FREQ0 ın AD9833 e yazılış şekli yanlış.
 
Şimdi senin programda üç ana problem kaldı:

1) Bir sürü gereksiz fazlalık kod var.

2) FREQ0 hesabı yanlış

3) hesaplanan FREQ0 ın AD9833 e yazılış şekli yanlış.
daha sadeleştirmeye hiç girmedim abi önceliklş hedefim doğru çalıştırmak.

hesabı dünkü attığın işleme göre oluşturdum abi.

yazım şekline birdaha bakayım ama zaten eksik var 14-15'e yazmalıyım ben sadece birine yazıyorunm
 
daha sadeleştirmeye hiç girmedim abi önceliklş hedefim doğru çalıştırmak.

"Program dağınıkken çalışır hale getireyim, sonra sadeleştiririm" olmaz. O programı o dağınıklıkta çalışır hale getiremezsin. Bu şuna benzer: Araba motorunu meydana getiren parçaları (vidalar, pistonlar, krank mili vs) bir çuvala doldurayım. Motor önce bir çalışsın, sonra düzenlerim parçaları. Olur mu? Programının her zaman sade, her zaman olabildiğince basit olması lazım. Ne demiş yazar? Bir program, eklenecek şey kalmadığı zaman bitti sayılmaz. Tam tersi, bir programdan çıkarılacak şey kalmadığı zaman bitti sayılır.
 
bayramdan sonra gürcistandan akrabam gelecek eğer bu altler oradan alınması daha uyguna gelecek aletlerse alabilirim ama tr fiyatı benim birkaç yıllık aliexpres alışverişim kadar
gürcistan'dan mal almak yatar.
bakıyorum mesela

atmega328p smd 4.80 dolar gürcistan'da yani 14.10 gürcü parası yapıyor.

14.10 gürcü parası 83TL yapıyor.

Türkiyede 115 liraya alabiliyoruz zaten anlamı kalmadı gürcistanın.

bana daha ucuz ülke lazım
 
"Program dağınıkken çalışır hale getireyim, sonra sadeleştiririm" olmaz. O programı o dağınıklıkta çalışır hale getiremezsin. Bu şuna benzer: Araba motorunu meydana getiren parçaları (vidalar, pistonlar, krank mili vs) bir çuvala doldurayım. Motor önce bir çalışsın, sonra düzenlerim parçaları. Olur mu? Programının her zaman sade, her zaman olabildiğince basit olması lazım. Ne demiş yazar? Bir program, eklenecek şey kalmadığı zaman bitti sayılmaz. Tam tersi, bir programdan çıkarılacak şey kalmadığı zaman bitti sayılır.
o zaman sadeleştirmeye gidelim.
bakayım neler fazla neler lazım.
 
Eğer deneme amaçlı kodlar var ve silmek istemiyorsan, onları #ifdef lemen lazım. Mesela bir SPI programı yazıyorum ben. Önce SPI bus'ten veri gönderebildiğimi teyit etmek istiyorum. Onun kodunu koyup bir kere bus testini yaptıktan sonra efektif olarak ortadan kaldırıyorum. Yani kodlar duruyor ama derlemeye girmiyorlar.

C++:
//#define SPI_BUS_TEST

void loop()
{
#ifdef SPI_BUS_TEST
  while (1)
  {
    digitalWrite(AD9833_CS, LOW);
    SPI.transfer16(0x1234);
    digitalWrite(AD9833_CS, HIGH);
    delay(100);
  }
#endif

// diger program kodu buradan devam ediyor
 

Forum istatistikleri

Konular
7,104
Mesajlar
121,026
Üyeler
2,879
Son üye
dinomiout

Son kaynaklar

Son profil mesajları

az bilgili çok meraklı
Prooffy wrote on semih_s's profile.
Merhaba, sizden DSO2C10 hakkında bilgi rica ettim. Yanıtlarsanız sevinirim...
Unal wrote on taydin's profile.
Timur Bey, Arduino kontrollü bir akü şarj cihazı yapmaya çalışıyorum. Aklımdaki fikri basit bir çizim olarak konu açmıştım. Özellikle sizin fikirlerinizi çok önemsiyorum.
hakan8470 wrote on Dede's profile.
1717172721760.png
Dedecim bu gul mu karanfil mi? Gerci ne farkeder onu da anlamam. Gerci bunun anlamini da bilmem :gulus2:
Lyewor_ wrote on hakan8470's profile.
Takip edilmeye başlanmışım :D ❤️
Back
Top