Teknoloji Ekibi

Elektronik Dünyası => Elektronik => Konuyu başlatan: Gedo - 12 Eylül 2010, 17:27:20

Başlık: basit osilaskop
Gönderen: Gedo - 12 Eylül 2010, 17:27:20
isis ve microC ile mantığı kavranması açısından.
sinüs dalgası örneği

RC0 zamanlamayı artırır
RC1 zamanlamayı azaltır
Başlık: Ynt: basit osilaskop
Gönderen: Gedo - 12 Eylül 2010, 18:02:34
dosyayı kayet demeden önce ".doc" kısmını silin
Başlık: Ynt: basit osilaskop
Gönderen: Karadağ - 12 Eylül 2010, 20:56:11
teşekkürler
Başlık: Ynt: basit osilaskop
Gönderen: Gedo - 12 Eylül 2010, 22:26:57
(https://www.teknolojiekibi.com/yeni/proxy.php?request=http%3A%2F%2Fimg818.imageshack.us%2Fimg818%2F6166%2Fekranalntskw.jpg&hash=5e7af3f7f23fe21068725c11f838cea4194b9b61)
Başlık: Ynt: basit osilaskop
Gönderen: pro-TR - 12 Eylül 2010, 22:33:03
gedo ustam ya ben isisi çalıştıramadım. hex dosyası olarak ne yüklemek lazım. ve yazılım dili nedir?
Başlık: Ynt: basit osilaskop
Gönderen: Gedo - 13 Eylül 2010, 10:33:24
Alıntı yapılan: pro-TR - 12 Eylül 2010, 22:33:03
gedo ustam ya ben isisi çalıştıramadım. hex dosyası olarak ne yüklemek lazım. ve yazılım dili nedir?
hex dosyasını eklememişim. MicroC pro 3.8
ekledim uzantısını HEX olarak kaydedin
Başlık: Ynt: basit osilaskop
Gönderen: xd15 - 13 Eylül 2010, 10:41:19
gedo arkadaşım paylaşım için çok saol.Ama dosyayı indiremiyorum bir türlü doc u silin demişsin siliyorum yine olmuyor.Nasıl indirebiliriz.
Başlık: Ynt: basit osilaskop
Gönderen: xd15 - 13 Eylül 2010, 10:49:20
Gedo indirdim paylaşımın için saol.Bu programı c dilinde değilde picbasicte nasıl yazabiliriz bir fikrin var mı?
Başlık: Ynt: basit osilaskop
Gönderen: Gedo - 13 Eylül 2010, 13:23:38
elimde picbasic yok ama satır satır komutları koysan yerine çalışır sanırım ya da işlemleri anlatayım sana. sen kendin yaz.

lcd adc tanımlamalarını geçiyorum.

adc okuma işlemini donguye sokuyorsun. okuduğun adc değerini lcd nin çözünürlüğüne göre ayarlaması * 64 dikey pixel için , 10 bitlik veriyi 1023 bolunce.
0-5volt arasını 0-64 pixel arasına dağıtmış oluruz.
döngüde i++ değişkeni de 0 dan itibaren yataydaki pixel kadar yani her okumayı bir sonraki pixele yazması için
adc den alınan veri y coordinatına gelecek şekilde çizdiriyor.

(i,adc),,,,, (i+n,adc) bu şekilde

dalgayı sabitlemek için de gecikme yapması için döngü var orda o döngünün tekrar sayısı buttonlarla ayarlanıyor. elimden geldiği kadar basit yapmaya çalıştım.

pic basikte daha kolaydır bu sanırım yani satır sayısı daha azdır.

olmazsa sen pic basicte yaz codları burda yayınla  düzeltmeleri beraber yaparız.



bir de not adc den alınan veri max 0-5 volt aralığında olur.
Başlık: Ynt: basit osilaskop
Gönderen: Gedo - 14 Eylül 2010, 13:19:58

char GLCD_DataPort at PORTD;
unsigned int temp_res[128];
int i;

sbit GLCD_CS1 at RB0_bit;
sbit GLCD_CS2 at RB1_bit;
sbit GLCD_RS  at RB5_bit;
sbit GLCD_RW  at RB3_bit;
sbit GLCD_EN  at RB4_bit;
sbit GLCD_RST at RB2_bit;

sbit GLCD_CS1_Direction at TRISB0_bit;
sbit GLCD_CS2_Direction at TRISB1_bit;
sbit GLCD_RS_Direction  at TRISB5_bit;
sbit GLCD_RW_Direction  at TRISB3_bit;
sbit GLCD_EN_Direction  at TRISB4_bit;
sbit GLCD_RST_Direction at TRISB2_bit;
//
void main() {
TRISA  = 0xFF; // PORTA is input

 Glcd_Init();
 Glcd_Fill(0x00);
 Delay_ms(500);

 do {
   for(i=0;i<128;i++){temp_res[i] = ADC_Read(2);}
   for(i=0;i<128;i++){
      Glcd_Dot(i,temp_res[i]* 64 / 1023,1);
      }
   delay_ms(1000);
   Glcd_Fill(0);
 } while(1);
}


Codları biraz değiştirip sadeleştirdim .
amaç ADC yi hızlandırmak bu haliyle 1500 Hz he kadar fena değil