Değil zaten abi biraz deney yapıyorumO nasıl bir şey ya? Önüne HEX yazıp yanına BIN ekliyorsun. Doğru gelmedi bu bana.
double frequency = 12000.0;
void loop()
{
double freq0 = round(frequency * 10.73741824);
}
transferi bitirleri kaldırınca çok yavaş çalışıyor veri yazdıktan 2 saniye sonra geliyor ayarladığım dalga tipi.Programda SPI.endTransaction fonksiyonlarını kaldır, onlara gerek yok. CS den sonraki delay'lere de gerek yok. Şimdilik yapılandırmayı bir kere yap ve işlemciyi sonsuz döngüye sok, bir daha ellemesin AD9833 ü.
Frekans hesabı da yanlış, long veri tipi ile bu hesabı yapamazsın, taşma olur.
C++:double frequency = 12000.0; void loop() { double freq0 = round(frequency * 10.73741824); }
abi bunu çalıştırıyorumÖncelikle SPI bus'a doğru veri çıkıyormu onu teyit et osiloskop ile. Döngü içinde sabit bir sayı yaz ve SS, SCK, MOSI ye bak. Böyle problemler çıkınca aşama aşama baştan kontrol etmen lazım.
void setup() {
SPI.begin();
SPI.beginTransaction(SPISettings(1000000, MSBFIRST, SPI_MODE2));
}
void loop() {
SPI.transfer16(15);
SPI.endTransaction();
delay(10);
}
benim skop 2 kanallı ama hallederim.üç sinyalin olduğu osiloskop ekranını koy beraber bakalım.
benim skop 2 kanallı ama hallederim.
rahat anlaşılması için end'den sonra while(1) koyayım mı?
bu haliyle CS hiç devrye girmiyor hep 1 konumda