muratmert4
Usta Üye
3 yıl önce mcp4922 için yaptığım kütüphane yazılımı **çalışıyor**
Bir arkadaşımıza lazım olmuş. Kendisine gönderdim.
belki başka arkadaşlarımıza lazım olur...
Bir arkadaşımıza lazım olmuş. Kendisine gönderdim.
belki başka arkadaşlarımıza lazım olur...
C:
#include <18F45K22.h>
#device ADC=10
#use delay(crystal=20000000)
//#use spi (MASTER, SPI1, MODE=3, BITS=8, STREAM=SPI_1)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8,stream=PORT1)
int CS1=pin_D0, CS2=pin_D1, CS3=pin_D2;
#define LDAC pin_D3
#define DAC0 112 // dacA
#define DAC1 240 // dacB
#define SPI_MODE_0 (SPI_L_TO_H | SPI_XMIT_L_TO_H)
#define SPI_MODE_1 (SPI_L_TO_H)
#define SPI_MODE_2 (SPI_H_TO_L)
#define SPI_MODE_3 (SPI_H_TO_L | SPI_XMIT_L_TO_H)
int16 veri1=0,veri2=0;
void dac_out(int CS, int dac_kanal, long data)
{
int byte1, byte0;
byte1 = dac_kanal | (make8(data,1));
byte0=make8(data,0);
output_low(CS);
delay_us(100);
spi_write(byte1);
spi_write(byte0);
output_high(CS);
delay_us(100);
output_low(LDAC);
delay_us(100);
output_high(LDAC);
}
void main()
{
setup_spi(SPI_MASTER | SPI_CLK_DIV_16 | SPI_L_TO_H | SPI_SAMPLE_AT_END);
// setup_spi(SPI_MASTER | SPI_MODE_0 | SPI_CLK_DIV_4 );
//setup_spi(SPI_MASTER | SPI_L_TO_H | SPI_CLK_DIV_16);
output_high(CS1);
output_high(CS2);
output_high(CS3);
output_low(LDAC);
veri1=100;
veri2=200;
while(TRUE)
{
printf("veri1= %lu veri2= %lu\n\r",veri1,veri2);
dac_out(CS1,DAC0,veri1);
delay_ms(2);
dac_out(CS1,DAC1,veri1);
delay_ms(2);
dac_out(CS2,DAC0,veri2);
delay_ms(2);
dac_out(CS2,DAC1,veri2);
delay_ms(2);
veri1+=10;
veri2+=10;
if(veri1>4095){veri1=200;}
delay_ms(2);
if(veri2>4095){veri2=100;}
delay_ms(2);
}
}