immortall
Üye
- Katılım
- 10 Eki 2018
- Mesajlar
- 72
- Puanları
- 1
- Yaş
- 28
delay_ms(1000) de denedim olmadı.
delay_ms(1000) de denedim olmadı.
Devreye değiştirmeden aşağıdaki kodu yazdım. Çalıştırdığımda ekranda hiç bir şey çıkmadı boş. Hata nerede acaba?voltaj=123 gibi sabit bir değer atayıp ekranda yazdırmayı deneyin. Yazılıyorsa read_adc de sorun vardır.
AN0 da multimetre ile ölçünce değer okuyor musunuz?
#include <123.h>
#include <lcd.c>
#define LCD_ENABLE_PIN PIN_B2
#define LCD_RS_PIN PIN_B0
#define LCD_RW_PIN PIN_B1
#define LCD_DATA4 PIN_C4
#define LCD_DATA5 PIN_C5
#define LCD_DATA6 PIN_C6
#define LCD_DATA7 PIN_C7
void main()
{
lcd_init();
delay_ms(10);
float voltaj;
while(TRUE)
{
voltaj=8.7;
printf(lcd_putc,"\f Voltaj= %f V", voltaj);
delay_ms(100);
}
}
#include <321.h>
#include <stdio.h>
#define LCD_ENABLE_PIN PIN_B2
#define LCD_RS_PIN PIN_B0
#define LCD_RW_PIN PIN_B1
#define LCD_DATA0 PIN_D0
#define LCD_DATA1 PIN_D1
#define LCD_DATA2 PIN_D2
#define LCD_DATA3 PIN_D3
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7
#include <lcd.c>
void main()
{
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(0);
unsigned int16 adc_giris=0;
float voltaj=0;
lcd_init();
while(TRUE)
{
set_adc_channel(0);
delay_ms(100);
adc_giris=read_adc();
voltaj=adc_giris*(12.0/1024.0);
delay_ms(10);
printf(lcd_putc, "\f voltaj= %f V",voltaj);
delay_ms(2000);
}
}
Sorun nedir tam olarak yardımcı olabilir misiniz?
321.h > proje adı (rastgele oluşturuldu)Burada 321.h, Lcd.c ve read_adc() işlevini göremiyoruz. TRISB ve TRISA'ya değer atanmamış.
Tahminen analog sayısal çevrim doğru yapılmıyor olabilir. Önceki iletide paylaştığım sıcaklık göstergeli LCD Ekran örneğini kurup çalıştırmayı deneyiniz.
O uygulama da CSS C ile yazılmıştı.
Ya da daha basiti A0'a LM35 sıcaklık ölçer bağlanmış. B0'a bir LED bağlanmış. Sıcaklık belirli bir düzeyin üzerindeyse BO'ı yakan bir uygulamayı buradan bulabilirsiniz.
Hatta sıcaklık ölçer olmasına da gerek yok basitçe bir ayarlı direnç ("potansiyometre") bile olabilir.