TODOPIC
Otros Microcontroladores / Dispositivos programables => Arduino => Mensaje iniciado por: luciarv en 16 de Junio de 2013, 06:31:18
-
Tengo un problema he visto una libreria de dac 4821 cn arduino,peroyo teng el mega y necesito hacer una señal triaungular y soy incapaz de adaptar el programa q he visto por que no m sale nada a la salida del dac,necesito ayuda estoy desesperada :(
-
Tengo un problema he visto una libreria de dac 4821 cn arduino,peroyo teng el mega y necesito hacer una señal triaungular y soy incapaz de adaptar el programa q he visto por que no m sale nada a la salida del dac,necesito ayuda estoy desesperada :(
Te refieres al mcp4821 no??
Postea aqui el codigo para que veamos donde esta el fallo.
-
#include <SPI.h>
const int PIN_CS = 53;
const int GAIN_1 = 0x1;
const int GAIN_2 = 0x0;
void setup()
{
pinMode(PIN_CS, OUTPUT);
SPI.begin();
SPI.setClockDivider(SPI_CLOCK_DIV2);
}
//assuming single channel, gain=2
void setOutput(unsigned int val)
{
byte lowByte = val & 0xff;
byte highByte = ((val >> 8 ) & 0xff) | 0x10;
PORTB &= 0xfb;
SPI.transfer(highByte);
SPI.transfer(lowByte);
PORTB |= 0x4;
}
void setOutput(byte channel, byte gain, byte shutdown, unsigned int val)
{
byte lowByte = val & 0xff;
byte highByte = ((val >> 8 ) & 0xff) | channel << 7 | gain << 5 | shutdown << 4;
PORTB &= 0xfb;
SPI.transfer(highByte);
SPI.transfer(lowByte);
PORTB |= 0x4;
}
void loop()
{
//high-res triangular wave
for (int i=0; i < 4096; i+=32)
{
//setOutput(0, GAIN_2, 1, i);
setOutput(i);
}
}
este es mi progrmama