bonsoir , est ce qu'il quel-qu 'un qui peut m'aider j 'ai un problème au niveau de l'écriture d'un code en c qui sert à communiquer un pic et un dac
voilà mon essai
-----
22/08/2013, 10h37
#2
invite0e5af214
Date d'inscription
janvier 1970
Messages
385
Re : code en c
Envoi des fichiers c
22/08/2013, 11h03
#3
f6bes
Date d'inscription
février 2005
Localisation
Nimes Age: 78700 millions de kms autour du soleil !!
Messages
69 934
Re : code en c
Bonjour amalab,
Les fichiers "zippés" ne sont pas les bienvenues sur FUTURA.
Bonne journée
22/08/2013, 11h41
#4
invite5637435c
Date d'inscription
janvier 1970
Messages
17 473
Re : code en c
Bonjour, merci de poster votre code avec les balises [CODE]......CODE ICI.....[*/CODE] (en enlevant juste l'astérisque, sinon vous ne pourriez lire ce que je vous ai écrit.Votre zip est vérolé apparemment...
Bon j'arrive à ouvrir le source mais c'est plutôt très indigeste à lire... Peux-tu préciser plusieurs choses comme notamment la référence de ton DAC, ton compilateur, et ce qui ne fonctionne pas. Il faut absolument apprendre à structurer ton code, le commenter un minimum et donner un minimum d'info pour espérer une réponse.le fichier dsn dans ton zip nécessite d'avoir la CAO avec laquelle tu as fait ton schéma, donc convertit le bazar en jpeg que je puisse le lire.@+
22/08/2013, 17h04
#7
invite805ff73c
Date d'inscription
janvier 1970
Messages
517
Re : code en c
Pfff... Est-ce vraiment si compliqué de poser des questions correctement?
- Le code au format .c ou même entre balises directement dans le message si ce n'est pas trop long.
- Les schémas au format PNG (non, pas de JPG, réservé aux photos!).
- Quel µC? Quel compilateur? Quel DAC?
et surtout: Quel est le problème EXACT?
22/08/2013, 17h52
#8
invite0e5af214
Date d'inscription
janvier 1970
Messages
385
Re : code en c
C'est quand même pas compliqué d'utiliser 2 balises :
Code:
#include <12F683.H>
#device adc=10 // CAN en mode 10 bits
#FUSES NOWDT // No Watch Dog Timer
#FUSES PUT // No Power Up Timer
#FUSES MCLR // Master Clear
#FUSES INTRC // Use internal R/C oscillator
#use delay(internal=8000000)
#define SPI_MODE_0 (SPI_L_TO_H | SPI_XMIT_L_TO_H) //CPOL=0 CPHA=0
#define SPI_MODE_1 (SPI_L_TO_H) //CPOL=0 CPHA=1
#define SPI_MODE_2 (SPI_H_TO_L) //CPOL=1 CPHA=0
#define SPI_MODE_3 (SPI_H_TO_L | SPI_XMIT_L_TO_H) //CPOL=1 CPHA=1
#int_timer0
#define SPI_DO PIN_A2 // data input output
#define SPI_sclk PIN_A3 // clock output
#define SPI_CS PIN_A1 // ship select
//
#use spi(DO=SPI_DO, CLK=SPI_SCLK, BITS=12, mode=3)
//
void send_data(int16 data)
{
output_low(SPI_CS); // select the chip
delay_us(5);
spi_xfer(Data); // send the new value to the DAC register
delay_us(5);
output_high(SPI_CS); // deselect the SPI data input
delay_us(5);
}
//
// void DAC_reset()
// {
// output_high(SPI_sclk);
// }
//
int16 valeur=0;
float tension;
init_adc();
void adc()
{
valeur = read_adc();
}
void main()
{
int16 DACoutMV;
setup_oscillator(OSC_8MHZ | OSC_INTRC);
setup_adc(no_analogs);
set_tris_a(101001);
setup_timer_0 (RTCC_DIV_4|RTCC_INTERNAL);//fe=4096000/4/4/256=1kHz
enable_interrupts(INT_TIMER0);
setup_adc_ports( sAN0 );
setup_adc(ADC_CLOCK_DIV_8);
set_adc_channel( 0 );
enable_interrupts(GLOBAL);
while(true)
{
DACoutMV= 2000; // value 0 to 4095 (0xfff) = 0 to 4.095 volts
send_data(Dacoutmv); // start a square wave 2 volts high
delay_ms(30); // make the square wave 30ms long
DACoutMV= 0; // set the DAC output back to zero using data
send_data(Dacoutmv); // end of 30ms square wave
delay_ms(100); // wait 100ms before starting triangle wave
// start of triangle wave
for(DACOutMV=0x00;DACoutMV<0xfff;DACoutMV++)
send_data(Dacoutmv);
// end of triangle wave
delay_ms(30); // wait 30ms at the top
// dac_reset(); // reset everything back to zero
//
}
}
22/08/2013, 21h22
#9
Jack
Modérateur
Date d'inscription
avril 2003
Localisation
Metz
Messages
17 787
Re : code en c
C'est déjà assez compliquer de corriger un problème en connaissant les symptômes, mais s'il faut en plus deviner ce qui ne fonctionne pas ...