MCP4922 arduino et signal clock
bonjour
pour un ami qui veut retrofiter souplement et simplement des équipements commandés en 0/10v
je suis parti sur mes fonds de tiroirs , j'ai des mcp4922 à la pelle et c'est toujours suivi
pour l'amplification 0-->5 vers 0--->10 je sais (encore) faire
n'ayant pas voulu réinventer la "poudre" , je suis parti à la recherche et je suis tombé
là dessus
http://stevewoodward.posterous.com/using-a-mcp4922-dac-with-an-arduino-to-contro
et sur ça
http://mrbook.org/downloads/arduinosx150/sx150driverarduino.pde
au moins pour test :
pas de lib et du facilement "tripotable"
ça fonctionne bien , qq test de vitesse/récurrence à faire avec le code derivé en bas de page
mais par curiosité et tres humblement, je ne vois pas où dans ce code simple la clock (transition) spi est gérée ?
ça doit etre parfaitement trivial, mais si un des petits genies du code veulent bien m'eclairer, j'accepte toutes lumieres
j'imagine du bitwise , mais je ne vois pas où ?
pour info : j'ai testé pour levée de doute en déconnectant pin13 = "çamarchpu"
pour un ami qui veut retrofiter souplement et simplement des équipements commandés en 0/10v
je suis parti sur mes fonds de tiroirs , j'ai des mcp4922 à la pelle et c'est toujours suivi
pour l'amplification 0-->5 vers 0--->10 je sais (encore) faire

n'ayant pas voulu réinventer la "poudre" , je suis parti à la recherche et je suis tombé
là dessus
http://stevewoodward.posterous.com/using-a-mcp4922-dac-with-an-arduino-to-contro
et sur ça
http://mrbook.org/downloads/arduinosx150/sx150driverarduino.pde
au moins pour test :
pas de lib et du facilement "tripotable"

ça fonctionne bien , qq test de vitesse/récurrence à faire avec le code derivé en bas de page
mais par curiosité et tres humblement, je ne vois pas où dans ce code simple la clock (transition) spi est gérée ?
ça doit etre parfaitement trivial, mais si un des petits genies du code veulent bien m'eclairer, j'accepte toutes lumieres
j'imagine du bitwise , mais je ne vois pas où ?
pour info : j'ai testé pour levée de doute en déconnectant pin13 = "çamarchpu"

code: [select]
#define dataout 11//mosi
//#define datain 12//miso - not used, part of builtin spi
#define spiclock 13//sck
#define slaveselect 10//ss
void setup()
{
byte clr;
pinmode(dataout, output);
// pinmode(datain, input);
pinmode(spiclock,output);
pinmode(slaveselect,output);
digitalwrite(slaveselect,high); //disable device
spcr = (1<<spe)|(1<<mstr);
clr=spsr;
clr=spdr;
//delay(10);
}
void write_value(uint16_t sample)
{
uint8_t dacspi0 = 0;
uint8_t dacspi1 = 0;
dacspi0 = (sample >> 8) & 0x00ff;
dacspi0 |= 0x10;
dacspi1 = sample & 0x00ff;
digitalwrite(slaveselect,low);
spdr = dacspi0; // start transmission
while (!(spsr & (1<<spif))) // wait end of transmission
{
};
spdr = dacspi1;
while (!(spsr & (1<<spif))) // wait end of transmission
{
};
digitalwrite(slaveselect,high);
//delay(5);
}
void playnote(int incomingbyte)
{
int diff = 0;
//---------
(diff=0; diff <= 4095; diff++){
// write_value (405) ; // 0 --->4095 12 bits 405=1.00v
write_value (diff) ; // 0 --->4095 12 bits 405=1.00v
//delay(1); run ok avec voltmetre ana et num , signal à tester à l'oscillo
delaymicroseconds(200); //run ok mais met les voltmetres ana et digital dans les choux, pas etonnant = oscillo faire
}
}
//void noteoff()
//{
// write_value(0);
//}
int incomingbyte = 0;
void loop()
{
playnote(incomingbyte);
}
bonjour,
la clock spi sur la pin 13 est active à partir du moment où le spi control register le bit mstr à 1, c'est à dire là :
la clock spi sur la pin 13 est active à partir du moment où le spi control register le bit mstr à 1, c'est à dire là :
code: [select]
spcr = (1<<spe)|(1<<mstr);
Arduino Forum > International > Français (Moderators: jfs, Snootlab) > MCP4922 arduino et signal clock
arduino
Comments
Post a Comment