лічильник електроенергії з ade7753 і фото 18f2525

T

tcndenis

Guest
привіт я студент з Мексики, я намагаюся оцінити ade7753 enrgía, але мені потрібно зробити:
1-водія з CCS.
2-CCS програма для читання SPI зв'язку через реальну владу, очевидно, і реактивної, і відобразити його в 2x16 LCD.
хтось може мені допомогти.
спасибі.

 
Я впевнений, якщо б ви показати нам, що ви зробили, ми можемо допомогти вам, де ви хочете бути.

 
це драйвер для ade7753:

# Ifndef ADE7753_CS
# Визначити ADE7753_CS RC0
# ENDIF

/ / Наступні комірок пам'яті виходити від ADE7758 дані

/ / Адреса Назва Нема біти
# Визначити _WAVEFORM 0x01 / / 24
# Визначити _AENERGY 0x02 / / 24
# Визначити _RAENERGY 0x03 / / 24
# Визначити _LAENERGY 0x04 / / 24
# Визначити _VAENERGY 0x05 / / 24
# Визначити _RVAENERGY 0x06 / / 24
# Визначити _LVAENRGY 0x07 / / 24
# Визначити _LVARENERGY 0x08 / / 16
# Визначити _MODE 0x09 / / 16
# Визначити _IRQEN 0x0A / / 16
# Визначити _STATUS 0x0B / / 16
# Визначити _RSTSTATUS 0x0C / / 16
# Визначити _CH1OS 0x0D / / 8
# Визначити _CH2OS 0x0E / / 8
# Визначити _GAIN 0x0F / / 8
# Визначити _PHCAL 0x10 / / 6
# Визначити _APOS 0x11 / / 16
# Визначити _WGAIN 0x12 / / 12
# Визначити _WDIV 0x13 / / 8
# Визначити _CFNUM 0x14 / / 12
# Визначити _CFDEN 0x15 / / 12
# Визначити _IRMS 0x16 / / 24
# Визначити _VRMS 0x17 / / 24
# Визначити _IRMSOS 0x18 / / 12
# Визначити _VRMSOS 0x19 / / 12
# Визначити _VAGAIN 0x1A / / 12
# Визначити _VADIV 0x1B / / 8
# Визначити _LINECYC 0x1C / / 16
# Визначити _ZXTOUT 0x1D / / 12
# Визначити _SAGCYC 0x1E / / 8
# Визначити _SAGLVL 0x1F / / 8
# Визначити _IPKLVL 0x20 / / 8
# Визначити _VPKLVL 0x21 / / 8
# Визначити _IPEAK 0x22 / / 24
# Визначити _RSTIPEAK 0x23 / / 24
# Визначити _VPEAK 0x24 / / 24
# Визначити _RSTVPEAK 0x25 / / 24
# Визначити _TEMP 0x26 Рівень / / 8
# Визначити _PERIOD 0x27 / / 16
# Визначити _TMODE 0x3D / / 8
# Визначити _CHKSUM 0x3E / / 6
# Визначити _DIEREV 0x3F / / 8

# Байт = POSTINC0 getenv ("SFR: POSTINC0")
# Слово FSR0 = getenv ("SFR: FSR0L")

недійсним read_ADE7753 (int16 * вал, int8 адреса, int8 довжина) (
ADE7753_CS = 0;
spi_write (0x80 та адреса);
FSR0 = значення;
робити (
Delay_us (4);
POSTINC0 spi_read = ();
) А (- довжина);
ADE7753_CS = 1;
)

недійсним write_ADE7753 (int32 вал, int8 адреса, int8 довжина) (
ADE7753_CS = 0;
spi_write (0x80 та адреса);
робити (
Delay_us (4);
spi_write (* вал );
) А (- довжина);
ADE7753_CS = 1;
)

а от код для читання ade7753:

# Включити <18f4550.h> / / рис utilizar
# Пристрої АЦП = 10
# Включити <Puertos.c>
# Запобіжники XT, NOMCLR, NOWDT, NOPROTECT, NOLVP, NODEBUG, USBDIV, PLL1, CPUDIV1, NOVREGEN, NOPBADEN / / запобіжник Con Кристал 48MHz
# Використовувати затримку (години = 48М) / / FOSC = 48MHz

# Визначити LCD_DATA4 PIN_B0
# Визначити LCD_DATA5 PIN_B1
# Визначити LCD_DATA6 PIN_B2
# Визначити LCD_DATA7 PIN_B3
# Визначити LCD_ENABLE_PIN PIN_B4
# Визначити LCD_RS_PIN PIN_B5
# Визначити LCD_RW_PIN PIN_B6

# Включити <lcd.c> / / бібліотека manejo LCD

# Включити "ADE7753_Driver.c"

Vrms int32;

вакуум основних () (
TRISA = 0;
setup_spi (SPI_MASTER | SPI_H_TO_L | SPI_CLK_DIV_16);
lcd_init (); / / Iniciamos ель-LCD
lcd_putc ("Vrms ="); / / Escribimos Vrms ан-ель-LCD
в той час як (1) (
read_ADE7753 (і Vrms, _VRMS, 3); / / Leemos ель Vrms дель ADE7753
Е (lcd_putc, "% Lu", Vrms); / / Ло imprimimos En La pantalla
lcd_gotoxy (6,1); / / Enviamos Курсор-ель-ла-posicion 6,1
)
)Додано через 3 хвилини:На самом деле я помилка в слові у відповідність з боку водія:

# Слово FSR0 = getenv ("SFR: FSR0L")спасибі!

 
в першу чергу, потрібно додати коментар широко (аж до майже надмірно) код, щоб ви та інші знають, що ви робите.

2ndly, ви не хочете, щоб включити. Файлу.Ви хочете включити відповідний заголовний файл.

нарешті, яка частина коду не працює - чому і як?так що інші можуть вам допомогти.

 

Welcome to EDABoard.com

Sponsor

Back
Top