Signal triangulaire avec un XMEGA
Salut à tous,
Je dois créer un programme pour générer un signal triangulaire en langage C avec un XMEGA ce signal triangulaire aura une fréquence de 50khz en d'autre terme faire un compteur Up/Down qui monte et qui descend et ensuite un convertisseur DAC pour convertir à la fréquence désirée mais je ne sais pas comment m'y prendre pour y arriver. Est ce qu'il existe des exemples pour avoir une idée ou m'orienter vers un lien qui explique la génération de signaux.
Merci
signal triangulaire avec un XMEGA
Bonsoir,
J'ai un programme pour la génération du signal triangulaire en C pour le XMEGA mais quand je le compile il me met une erreur que je ne vois pas. pourriez vous me dire si vous la voyez.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| #include "dac_driver.h"
int main (void)
{
uint16_t angle;
/* Given 2 MHz CPU speed, this is configured to 2µs separation time and
* 16µs refresh time.*/
DAC_DualChannel_Enable( &DACA,
DAC_REFSEL_AVCC_gc,
false,
DAC_CONINTVAL_4CLK_gc,
DAC_REFRESH_32CLK_gc );
/* Use a 12 bit variable to output two triangle waves, separated by 180 degrees phase, as fast as possible. */
while (1) {
for ( angle = 0; angle < 0x1000; ++angle ) {
while ( DAC_Channel_DataEmpty( &DACA, CH0 ) == false ) {
/* Blocking code waiting for empty register. */
}
DAC_Channel_Write( &DACA, angle, CH0 );
while ( DAC_Channel_DataEmpty( &DACA, CH1 ) == false ) {
/* Blocking code waiting for empty register. */
}
DAC_Channel_Write( &DACA, 0xFFF - angle, CH1 );
}
for ( angle = 0; angle < 0x1000; ++angle ) {
while ( DAC_Channel_DataEmpty( &DACA, CH0 ) == false ) {
/* Blocking code waiting for empty register. */
}
DAC_Channel_Write( &DACA, 0xFFF - angle, CH0 );
while ( DAC_Channel_DataEmpty( &DACA, CH1 ) == false ) {
/* Blocking code waiting for empty register. */
}
DAC_Channel_Write( &DACA, angle, CH1 );
}
}
} |
Et le message d'erreur est le suivant:
Citation:
21:21:18 **** Build of configuration Release for project dac_triangle ****
make all
Building file: ../dac_triangle.c
Invoking: AVR Compiler
avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atxmega256a3 -DF_CPU=32000000UL -MMD -MP -MF"dac_triangle.d" -MT"dac_triangle.d" -c -o "dac_triangle.o" "../dac_triangle.c"
Finished building: ../dac_triangle.c
Building target: dac_triangle.elf
Invoking: AVR C Linker
avr-gcc -Wl,-Map,dac_triangle.map -mmcu=atxmega256a3 -o "dac_triangle.elf" ./dac_triangle.o
c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avrxmega6/crtx256a3.o:(.init9+0x0): undefined reference to `main'
make: *** [dac_triangle.elf] Error 1