Précédent   Forum du club des développeurs et IT Pro > Général Développement > Programmation système > Embarqué
Embarqué Forum d'entraide sur la programmation des systèmes embarqués
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 13/10/2012, 17h39   #1
moha12
Invité de passage
 
Homme
Inscription : octobre 2012
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations forums :
Inscription : octobre 2012
Messages : 6
Points : 0
Points : 0
Par défaut 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
moha12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2012, 21h35   #2
moha12
Invité de passage
 
Homme
Inscription : octobre 2012
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations forums :
Inscription : octobre 2012
Messages : 6
Points : 0
Points : 0
Par défaut 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
moha12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2012, 21h51   #3
Bktero
Expert Confirmé Sénior
 
Avatar de Bktero
 
Ingénieur systèmes embarqués
Inscription : juin 2009
Messages : 1 704
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Ingénieur systèmes embarqués
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2009
Messages : 1 704
Points : 4 171
Points : 4 171
Code :
1
2
Invoking: AVR C Linker...
....undefined reference to `main'
Ce n'est pas une erreur de compilation mais d'édition des liens : ton code compile correctement mais il n'y a pas de fonction main, il est donc impossible pour l'éditeur des liens de créer le fichier exécutable.
__________________
Si Code::Blocks vous dit undefined reference to 'socket@12', cela signifie que vous avez un problème d'édition des liens. Allez dans Projects / Build Options / Linker Settings / Add et renseigner ici les .a qui vont bien. Exemple pour les sockets : C:\Program Files\CodeBlocks\MinGW\lib\libws2_32.a

Pour les adeptes du langage SMS, allez ici et ramenez la traduction française ^^

Pour vos problèmes d'embarqué, utilisez le forum dédié !
Bktero est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 14h02.


 
 
 
 
Partenaires

Hébergement Web