Additions from 18/05/2021
This commit is contained in:
commit
2c0e04a7d9
15 changed files with 790 additions and 0 deletions
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
.vs/**
|
||||
**/Debug
|
31
README.md
Normal file
31
README.md
Normal file
|
@ -0,0 +1,31 @@
|
|||
Lancez le fichier 'transcoder\transcodeur.atsln'
|
||||
|
||||
Tout d'abord connectez le STK500 au port COM3.
|
||||
|
||||
Ensuite branchez le port de sortie au COM1.
|
||||
Ouvez PuTTY et mettez les paramètres suivants :
|
||||
Session
|
||||
-Serial Port
|
||||
-COM1
|
||||
Connection\SSH\Serial
|
||||
-Port de connection COM1
|
||||
-9600 Bauds
|
||||
-8 Bit de Data
|
||||
-1 Bit de Stop
|
||||
-Pas de parité
|
||||
-Pas de flow control
|
||||
Terminal
|
||||
-Echo Always ON
|
||||
|
||||
Ensuite branchez le RXD et le TXD au Port PD0 et PD1 respectivement.
|
||||
|
||||
Branchez le PORTA et le PORTC au LCD (normalement les fils sont tous droits s'ils sont bien mis).
|
||||
|
||||
Branchez PD2, PD3 et PB2 au SW0, SW1 et SW2 respectivement.
|
||||
Vous aurez donc normalement :
|
||||
-L'arrêt sur SW0
|
||||
-Les 4 vitesses sur SW1
|
||||
-Les 3 fréquences sur SW2
|
||||
|
||||
Enfin, branchez PB3 soit à un oscilloscope soit à un haut-parleur pour entendre/visualiser le transcodeur morse.
|
||||
Vous n'avez plus qu'à programmer sur le STK500 le programme, et à mettre le texte que vous voulez sur PuTTY.
|
22
transcodeur.atsln
Normal file
22
transcodeur.atsln
Normal file
|
@ -0,0 +1,22 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Atmel Studio Solution File, Format Version 11.00
|
||||
VisualStudioVersion = 14.0.23107.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{54F91283-7BC4-4236-8FF9-10F437C3AD48}") = "transcodeur", "transcodeur\transcodeur.cproj", "{DCE6C7E3-EE26-4D79-826B-08594B9AD897}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|AVR = Debug|AVR
|
||||
Release|AVR = Release|AVR
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{DCE6C7E3-EE26-4D79-826B-08594B9AD897}.Debug|AVR.ActiveCfg = Debug|AVR
|
||||
{DCE6C7E3-EE26-4D79-826B-08594B9AD897}.Debug|AVR.Build.0 = Debug|AVR
|
||||
{DCE6C7E3-EE26-4D79-826B-08594B9AD897}.Release|AVR.ActiveCfg = Release|AVR
|
||||
{DCE6C7E3-EE26-4D79-826B-08594B9AD897}.Release|AVR.Build.0 = Release|AVR
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
52
transcodeur/lcd.c
Normal file
52
transcodeur/lcd.c
Normal file
|
@ -0,0 +1,52 @@
|
|||
/*
|
||||
* lcd.c
|
||||
*
|
||||
* Created: 17/05/2021 12:10:24
|
||||
* Author: yboujon1
|
||||
*/
|
||||
|
||||
#include "main.h"
|
||||
#include "lcd.h"
|
||||
|
||||
void LCD_Init (void)
|
||||
{
|
||||
DDRC = 0xFF; // Le port de controle en sortie
|
||||
DDRA = 0xFF; // le port des donnees en sortie
|
||||
PORTC &= ~(1<<E); // E=0 Enable desactive
|
||||
_delay_ms(50); //on attends +30ms pour que Vdd soit a 4,5V
|
||||
LCD_Command (FUNCTION_SET | TWO_LINE_MODE);
|
||||
LCD_Command (DISPLAY_CTRL | DISPLAY_ON);
|
||||
LCD_Command (CLEAR_DISPLAY);
|
||||
LCD_Command (ENTRY_MODE_SET | INCREMENT_MODE);
|
||||
}
|
||||
|
||||
void LCD_Command(unsigned char cmd)
|
||||
{
|
||||
PORTC &= ~(1<<RS); // RS=0 on active le mode commande
|
||||
PORTC &= ~(1<<RW); // RW=0 write mode
|
||||
PORTC |= (1<<E); // E=1 Enable autorise
|
||||
PORTA= cmd; //on envoie la donnee
|
||||
PORTC &= ~(1<<E); // E=0 Enable desactive
|
||||
switch(cmd)
|
||||
{
|
||||
case 0x01:
|
||||
_delay_ms(2);
|
||||
break;
|
||||
case 0x81:
|
||||
_delay_ms(2);
|
||||
break;
|
||||
default:
|
||||
_delay_us(50);
|
||||
};
|
||||
}
|
||||
|
||||
int LCD_putchar(char c, FILE *stream) /* LCD data write function */
|
||||
{
|
||||
_delay_ms(10);
|
||||
PORTC |= (1<<PC2); // RS=1 on active le mode data
|
||||
PORTC &= ~(1<<PC1); // RW=0 write mode
|
||||
PORTC |= (1<<PC0); // E=1 Enable autorise
|
||||
PORTA = c; //on envoie la donnee
|
||||
PORTC &= ~(1<<PC0); //on desactive l'enable
|
||||
return 0;
|
||||
}
|
35
transcodeur/lcd.h
Normal file
35
transcodeur/lcd.h
Normal file
|
@ -0,0 +1,35 @@
|
|||
/*
|
||||
* lcd.h
|
||||
*
|
||||
* Created: 17/05/2021 12:11:26
|
||||
* Author: yboujon1
|
||||
*/
|
||||
|
||||
#include "main.h"
|
||||
|
||||
#define RS PC2
|
||||
#define RW PC1
|
||||
#define E PC0
|
||||
|
||||
#define FUNCTION_SET 0x30
|
||||
#define TWO_LINE_MODE 0x08
|
||||
#define DOTS_MODE 0x04
|
||||
|
||||
#define DISPLAY_CTRL 0x08
|
||||
#define DISPLAY_ON 0x04
|
||||
#define CURSOR_ON 0x02
|
||||
#define BLINK_ON 0x01
|
||||
|
||||
#define CLEAR_DISPLAY 0x01
|
||||
|
||||
#define ENTRY_MODE_SET 0x04
|
||||
#define INCREMENT_MODE 0x02
|
||||
#define ENTIRE_SHIFT_ON 0x01
|
||||
|
||||
#define FIRST_LINE 0x80
|
||||
#define SECOND_LINE 0xC0
|
||||
|
||||
void LCD_Init (void);
|
||||
void LCD_Command(unsigned char cmd);
|
||||
int LCD_putchar(char c, FILE *stream);
|
||||
void LCD_placing(char c);
|
31
transcodeur/main.c
Normal file
31
transcodeur/main.c
Normal file
|
@ -0,0 +1,31 @@
|
|||
/*
|
||||
* transcodeur.c
|
||||
*
|
||||
* Created: 27/04/2021 14:01:46
|
||||
* Author : yboujon1
|
||||
*/
|
||||
|
||||
#include "main.h"
|
||||
#include "lcd.h"
|
||||
#include "timerinterrupt.h"
|
||||
#include "saisieuart.h"
|
||||
#include "morse.h"
|
||||
FILE std_out_lcd= FDEV_SETUP_STREAM(LCD_putchar, NULL,_FDEV_SETUP_WRITE);
|
||||
|
||||
int main(void)
|
||||
{
|
||||
init_interruption();
|
||||
uart_init(UBRR_THEO);
|
||||
LCD_Init();
|
||||
int taille=0;
|
||||
char tab[MAX];
|
||||
stdout=&std_out_lcd;
|
||||
DDRB|=(1<<PB3);
|
||||
while(1){
|
||||
saisie(tab,&taille);
|
||||
LCD_Command (CLEAR_DISPLAY);
|
||||
printf("%s",tab);
|
||||
maj2min_convert(tab,taille);
|
||||
latin2morse(tab,taille);
|
||||
};
|
||||
}
|
16
transcodeur/main.h
Normal file
16
transcodeur/main.h
Normal file
|
@ -0,0 +1,16 @@
|
|||
/*
|
||||
* main.h
|
||||
*
|
||||
* Created: 17/05/2021 12:14:20
|
||||
* Author: yboujon1
|
||||
*/
|
||||
|
||||
#define F_CPU 3686400
|
||||
#include <avr/io.h>
|
||||
#include <avr/interrupt.h>
|
||||
#include <util/delay.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdint.h>
|
||||
#include <inttypes.h>
|
177
transcodeur/morse.c
Normal file
177
transcodeur/morse.c
Normal file
|
@ -0,0 +1,177 @@
|
|||
/*
|
||||
* morse.c
|
||||
*
|
||||
* Created: 18/05/2021 15:47:14
|
||||
* Author: yboujon1
|
||||
*/
|
||||
|
||||
#include "main.h"
|
||||
#include "morse.h"
|
||||
|
||||
unsigned char morse_library[LETTRES][7]= { {'a',POINT,TRAIT,'\0'},
|
||||
{'b',TRAIT,POINT,POINT,POINT,'\0'},
|
||||
{'c',TRAIT,POINT,TRAIT,POINT,'\0'},
|
||||
{'d',TRAIT,POINT,POINT,'\0'},
|
||||
{'e',POINT,'\0'},
|
||||
{'f',POINT,POINT,TRAIT,POINT,'\0'},
|
||||
{'g',TRAIT,TRAIT,POINT,'\0'},
|
||||
{'h',POINT,POINT,POINT,POINT,'\0'},
|
||||
{'i',POINT,POINT,'\0'},
|
||||
{'j',POINT,TRAIT,TRAIT,TRAIT,'\0'},
|
||||
{'k',TRAIT,POINT,TRAIT,'\0'},
|
||||
{'l',POINT,TRAIT,POINT,POINT,'\0'},
|
||||
{'m',TRAIT,TRAIT,'\0'},
|
||||
{'n',TRAIT,POINT,'\0'},
|
||||
{'o',TRAIT,TRAIT,TRAIT,'\0'},
|
||||
{'p',POINT,TRAIT,TRAIT,POINT,'\0'},
|
||||
{'q',TRAIT,TRAIT,POINT,TRAIT,'\0'},
|
||||
{'r',POINT,TRAIT,POINT,'\0'},
|
||||
{'s',POINT,POINT,POINT,'\0'},
|
||||
{'t',TRAIT,'\0'},
|
||||
{'u',POINT,POINT,TRAIT,'\0'},
|
||||
{'v',POINT,POINT,POINT,TRAIT,'\0'},
|
||||
{'w',POINT,TRAIT,TRAIT,'\0'},
|
||||
{'x',TRAIT,POINT,POINT,TRAIT,'\0'},
|
||||
{'y',TRAIT,POINT,TRAIT,TRAIT,'\0'},
|
||||
{'z',TRAIT,TRAIT,POINT,POINT,'\0'},
|
||||
{'0',TRAIT,TRAIT,TRAIT,TRAIT,TRAIT,'\0'},
|
||||
{'1',POINT,TRAIT,TRAIT,TRAIT,TRAIT,'\0'},
|
||||
{'2',POINT,POINT,TRAIT,TRAIT,TRAIT,'\0'},
|
||||
{'3',POINT,POINT,POINT,TRAIT,TRAIT,'\0'},
|
||||
{'4',POINT,POINT,POINT,POINT,TRAIT,'\0'},
|
||||
{'5',POINT,POINT,POINT,POINT,POINT,'\0'},
|
||||
{'6',TRAIT,POINT,POINT,POINT,POINT,'\0'},
|
||||
{'7',TRAIT,TRAIT,POINT,POINT,POINT,'\0'},
|
||||
{'8',TRAIT,TRAIT,TRAIT,POINT,POINT,'\0'},
|
||||
{'9',TRAIT,TRAIT,TRAIT,TRAIT,POINT,'\0'}
|
||||
};
|
||||
|
||||
void envoyer_signe_morse(unsigned char signe_morse)
|
||||
{
|
||||
switch(signe_morse){
|
||||
case POINT:
|
||||
start_timer0();
|
||||
start_timer1(ONEMS);
|
||||
wait_ocf1a_timer1();
|
||||
stop_timer0();
|
||||
wait_ocf1a_timer1();
|
||||
break;
|
||||
case TRAIT:
|
||||
start_timer0();
|
||||
start_timer1(3*ONEMS);
|
||||
wait_ocf1a_timer1();
|
||||
stop_timer0();
|
||||
start_timer1(ONEMS);
|
||||
wait_ocf1a_timer1();
|
||||
break;
|
||||
case INTERLETTRE:
|
||||
start_timer1(2*ONEMS);
|
||||
wait_ocf1a_timer1();
|
||||
break;
|
||||
case INTERMOT:
|
||||
start_timer1(10*ONEMS);
|
||||
wait_ocf1a_timer1();
|
||||
break;
|
||||
case FIN:
|
||||
resume_timer1();
|
||||
stop_timer1();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
};
|
||||
}
|
||||
|
||||
void maj2min_convert(char *tab, int n)
|
||||
{
|
||||
int i;
|
||||
for(i=0; i<=n; i++)
|
||||
{
|
||||
if(tab[i]>=65 && tab[i]<=90) //si c'est une majuscule
|
||||
{
|
||||
tab[i]=tab[i]+32; //la met en minuscule
|
||||
}
|
||||
else
|
||||
{
|
||||
tab[i]=tab[i]; //sinon rien
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
void latin2morse(char *tab, int n)
|
||||
{
|
||||
int i=0; //varie la chaine de caractere
|
||||
int j=0; //varie la librarie
|
||||
do
|
||||
{
|
||||
if(tab[i]==morse_library[j][0]) //verifie si le caractere correspond ? la librarie
|
||||
{
|
||||
library_checker(tab,&i,&j); //traduit dans la librairie et renvoie les deux variables pour continuer
|
||||
}
|
||||
else //si ce n'est pas dans la librarie
|
||||
{
|
||||
simple_terms(tab,&i,&j); //traduit directement les termes plus simples
|
||||
};
|
||||
}
|
||||
while(i<n); //tant qu'on arrive ? la fin du tableau
|
||||
}
|
||||
|
||||
void library_checker(char *tab,int* i,int* j)
|
||||
{
|
||||
morselibrary_output(*j); //traduit en morse
|
||||
*j=0; //on revient au d?but de la librairie
|
||||
lcd_char(tab,i);
|
||||
*i=*i+1; //on avance dans la chaine
|
||||
if(tab[*i]!=32 && tab[*i]!='\0') //s'il n'y a pas d'espace ou de fin de mot apr?s, INTERLETTRE
|
||||
{
|
||||
envoyer_signe_morse(INTERLETTRE);
|
||||
};
|
||||
}
|
||||
|
||||
void simple_terms(char *tab,int* i,int* j)
|
||||
{
|
||||
switch(tab[*i]) //en fonction du caractere
|
||||
{
|
||||
case 32: //si c'est un espace INTERMOT
|
||||
envoyer_signe_morse(INTERMOT);
|
||||
*j=0; //on revient au d?but de la librairie
|
||||
lcd_char(tab,i);
|
||||
*i=*i+1; //on avance dans la chaine
|
||||
break;
|
||||
case '\0':
|
||||
envoyer_signe_morse(FIN); //si c'est la fin de la chaine, FIN
|
||||
*j=0; //on revient au d?but de la librairie
|
||||
*i=*i+1; //on avance dans la chaine
|
||||
break;
|
||||
default: //dans d'autres cas continuer l'analyse de la chaine
|
||||
*j=*j+1; //on avance dans la tableau
|
||||
};
|
||||
}
|
||||
|
||||
void morselibrary_output(int id)
|
||||
{
|
||||
int y=1; //on commence a la 2eme colonne
|
||||
do
|
||||
{
|
||||
if(etat==0){
|
||||
envoyer_signe_morse(morse_library[id][y]); //fonction qui envoie un trait ou un point en fonction de la librarie
|
||||
y++;
|
||||
}
|
||||
else{
|
||||
//nothing
|
||||
};
|
||||
}
|
||||
while(morse_library[id][y]!='\0'); //jusqu'a la fin de la traduction dans la librairie
|
||||
}
|
||||
|
||||
void lcd_char(char *tab,int* i)
|
||||
{
|
||||
switch(*i)
|
||||
{
|
||||
case 0:
|
||||
LCD_Command(SECOND_LINE);
|
||||
printf("%c",tab[*i]);
|
||||
break;
|
||||
default:
|
||||
printf("%c",tab[*i]);
|
||||
};
|
||||
}
|
28
transcodeur/morse.h
Normal file
28
transcodeur/morse.h
Normal file
|
@ -0,0 +1,28 @@
|
|||
/*
|
||||
* morse.h
|
||||
*
|
||||
* Created: 18/05/2021 15:47:24
|
||||
* Author: yboujon1
|
||||
*/
|
||||
|
||||
#include "main.h"
|
||||
#include "timerinterrupt.h"
|
||||
#include "lcd.h"
|
||||
|
||||
#define POINT 1
|
||||
#define TRAIT 3
|
||||
#define INTERLETTRE 30
|
||||
#define INTERMOT 70
|
||||
#define FIN 0
|
||||
#define LETTRES 36
|
||||
|
||||
void envoyer_signe_morse(unsigned char signe_morse);
|
||||
void maj2min_convert(char *tab, int n); //elle traduit des majuscules en minuscules
|
||||
void latin2morse(char *tab, int n); //elle cherche les correspondances par rapport a la librairie ou non
|
||||
void morselibrary_output(int id); //elle traduit en morse par rapport a la librairie
|
||||
void envoie_morse(char morse); //elle envoie le caractere en morse
|
||||
void library_checker(char *tab,int* i,int* j); //traduit dans la librairie et ajoute un intermot si possible
|
||||
void simple_terms(char *tab,int* i,int* j); //traduit les espaces et les fins de message
|
||||
void lcd_char(char *tab,int* i);
|
||||
|
||||
unsigned char morse_library[LETTRES][7];
|
41
transcodeur/saisieuart.c
Normal file
41
transcodeur/saisieuart.c
Normal file
|
@ -0,0 +1,41 @@
|
|||
/*
|
||||
* saisieuart.c
|
||||
*
|
||||
* Created: 18/05/2021 15:40:37
|
||||
* Author: yboujon1
|
||||
*/
|
||||
|
||||
#include "saisieuart.h"
|
||||
|
||||
void uart_init(unsigned int ubrr)
|
||||
{
|
||||
DDRD|=(1<<PD1);
|
||||
UBRRL=ubrr;
|
||||
UCSRB|=(1<<RXEN)|(1<<TXEN);
|
||||
UCSRC|=(1<<URSEL)|(1<<UPM1)|(3<<UCSZ0); //mode synchrone, parité paire, mode 8 bit
|
||||
}
|
||||
|
||||
char uart_getchar(void)
|
||||
{
|
||||
do{
|
||||
//nothing
|
||||
}while ((UCSRA & (1<<RXC))==0);
|
||||
return UDR;
|
||||
}
|
||||
|
||||
void saisie(char tab[], int *n)
|
||||
{
|
||||
int i=0;
|
||||
do
|
||||
{
|
||||
tab[i]=uart_getchar();
|
||||
i++;
|
||||
}
|
||||
while((tab[i-1]!=13) && (i<MAX));
|
||||
tab[i-1] = '\0';
|
||||
if (!(i<MAX))
|
||||
{
|
||||
fflush(stdin);
|
||||
}
|
||||
*n=strlen(tab)+1;
|
||||
}
|
14
transcodeur/saisieuart.h
Normal file
14
transcodeur/saisieuart.h
Normal file
|
@ -0,0 +1,14 @@
|
|||
/*
|
||||
* saisieuart.h
|
||||
*
|
||||
* Created: 18/05/2021 15:40:59
|
||||
* Author: yboujon1
|
||||
*/
|
||||
|
||||
#include "main.h"
|
||||
|
||||
#define UBRR_THEO 23
|
||||
#define MAX 17
|
||||
void uart_init(unsigned int ubrr);
|
||||
char uart_getchar(void);
|
||||
void saisie(char *tab, int* n); //saisie de la chaine de char
|
53
transcodeur/timerinterrupt.c
Normal file
53
transcodeur/timerinterrupt.c
Normal file
|
@ -0,0 +1,53 @@
|
|||
/*
|
||||
* timerinterrupt.c
|
||||
*
|
||||
* Created: 17/05/2021 12:58:50
|
||||
* Author: yboujon1
|
||||
*/
|
||||
|
||||
#include "main.h"
|
||||
#include "timerinterrupt.h"
|
||||
volatile unsigned char etat = 0;
|
||||
|
||||
void start_timer0(void){
|
||||
DDRB |= (1<<PB3);
|
||||
TCCR0 |= (3<<CS00)|(1<<WGM01)|(1<<COM00);
|
||||
OCR0 = 65;
|
||||
}
|
||||
|
||||
void stop_timer0(void){
|
||||
TCCR0 &= ~(3<<CS00);
|
||||
}
|
||||
|
||||
void init_interruption(void){
|
||||
DDRD &= ~(1<<PD2); //on met int sur pd2
|
||||
MCUCR |= (3<<ISC00);
|
||||
GICR |= (1<<INT0);
|
||||
sei();
|
||||
}
|
||||
|
||||
ISR (INT0_vect){
|
||||
etat = 1 - etat;
|
||||
}
|
||||
|
||||
void start_timer1(unsigned short int ocr1a){
|
||||
OCR1A=ocr1a;
|
||||
TCCR1A |= (1<<COM1A0); //toggle
|
||||
TCCR1B |= (1<<WGM12)|(1<<CS12); //compare + div 64
|
||||
}
|
||||
|
||||
void stop_timer1(void){
|
||||
TCCR1B &= ~(1<<CS12);
|
||||
OCR1A=0; //règle le soucis du premier mot oublié
|
||||
}
|
||||
|
||||
void resume_timer1(void){
|
||||
TCCR1B |= (1<<CS12);
|
||||
}
|
||||
|
||||
void wait_ocf1a_timer1(void){
|
||||
do{
|
||||
status=TIFR;
|
||||
}while((status & (1<<OCF1A))==0);
|
||||
TIFR = TIFR | (1<<OCF1A); //on remet OCF1A a 0
|
||||
}
|
20
transcodeur/timerinterrupt.h
Normal file
20
transcodeur/timerinterrupt.h
Normal file
|
@ -0,0 +1,20 @@
|
|||
/*
|
||||
* timerinterrupt.h
|
||||
*
|
||||
* Created: 17/05/2021 12:57:52
|
||||
* Author: yboujon1
|
||||
*/
|
||||
|
||||
#include "main.h"
|
||||
|
||||
#define ONEMS 1440
|
||||
void start_timer0(void);
|
||||
void stop_timer0(void);
|
||||
void init_interruption(void);
|
||||
ISR (INT0_vect);
|
||||
unsigned char status;
|
||||
void start_timer1(unsigned short int ocr1a);
|
||||
void stop_timer1(void);
|
||||
void resume_timer1(void);
|
||||
void wait_ocf1a_timer1(void);
|
||||
volatile unsigned char etat;
|
86
transcodeur/transcodeur.componentinfo.xml
Normal file
86
transcodeur/transcodeur.componentinfo.xml
Normal file
|
@ -0,0 +1,86 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Store xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="AtmelPackComponentManagement">
|
||||
<ProjectComponents>
|
||||
<ProjectComponent z:Id="i1" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/">
|
||||
<CApiVersion></CApiVersion>
|
||||
<CBundle></CBundle>
|
||||
<CClass>Device</CClass>
|
||||
<CGroup>Startup</CGroup>
|
||||
<CSub></CSub>
|
||||
<CVariant></CVariant>
|
||||
<CVendor>Atmel</CVendor>
|
||||
<CVersion>1.2.0</CVersion>
|
||||
<DefaultRepoPath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs</DefaultRepoPath>
|
||||
<DependentComponents xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
|
||||
<Description></Description>
|
||||
<Files xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
|
||||
<d4p1:anyType i:type="FileInfo">
|
||||
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.132\include</AbsolutePath>
|
||||
<Attribute></Attribute>
|
||||
<Category>include</Category>
|
||||
<Condition>C</Condition>
|
||||
<FileContentHash i:nil="true" />
|
||||
<FileVersion></FileVersion>
|
||||
<Name>include</Name>
|
||||
<SelectString></SelectString>
|
||||
<SourcePath></SourcePath>
|
||||
</d4p1:anyType>
|
||||
<d4p1:anyType i:type="FileInfo">
|
||||
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.132\include\avr\iom16.h</AbsolutePath>
|
||||
<Attribute></Attribute>
|
||||
<Category>header</Category>
|
||||
<Condition>C</Condition>
|
||||
<FileContentHash>BDa+/Y5e630de26bwSjZpg==</FileContentHash>
|
||||
<FileVersion></FileVersion>
|
||||
<Name>include/avr/iom16.h</Name>
|
||||
<SelectString></SelectString>
|
||||
<SourcePath></SourcePath>
|
||||
</d4p1:anyType>
|
||||
<d4p1:anyType i:type="FileInfo">
|
||||
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.132\templates\main.c</AbsolutePath>
|
||||
<Attribute>template</Attribute>
|
||||
<Category>source</Category>
|
||||
<Condition>C Exe</Condition>
|
||||
<FileContentHash>ke+693fxy85p6GOdRcSK5g==</FileContentHash>
|
||||
<FileVersion></FileVersion>
|
||||
<Name>templates/main.c</Name>
|
||||
<SelectString>Main file (.c)</SelectString>
|
||||
<SourcePath></SourcePath>
|
||||
</d4p1:anyType>
|
||||
<d4p1:anyType i:type="FileInfo">
|
||||
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.132\templates\main.cpp</AbsolutePath>
|
||||
<Attribute>template</Attribute>
|
||||
<Category>source</Category>
|
||||
<Condition>C Exe</Condition>
|
||||
<FileContentHash>YXFphlh0CtZJU+ebktABgQ==</FileContentHash>
|
||||
<FileVersion></FileVersion>
|
||||
<Name>templates/main.cpp</Name>
|
||||
<SelectString>Main file (.cpp)</SelectString>
|
||||
<SourcePath></SourcePath>
|
||||
</d4p1:anyType>
|
||||
<d4p1:anyType i:type="FileInfo">
|
||||
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.2.132\gcc\dev\atmega16</AbsolutePath>
|
||||
<Attribute></Attribute>
|
||||
<Category>libraryPrefix</Category>
|
||||
<Condition>GCC</Condition>
|
||||
<FileContentHash i:nil="true" />
|
||||
<FileVersion></FileVersion>
|
||||
<Name>gcc/dev/atmega16</Name>
|
||||
<SelectString></SelectString>
|
||||
<SourcePath></SourcePath>
|
||||
</d4p1:anyType>
|
||||
</Files>
|
||||
<PackName>ATmega_DFP</PackName>
|
||||
<PackPath>C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/ATmega_DFP/1.2.132/Atmel.ATmega_DFP.pdsc</PackPath>
|
||||
<PackVersion>1.2.132</PackVersion>
|
||||
<PresentInProject>true</PresentInProject>
|
||||
<ReferenceConditionId>ATmega16</ReferenceConditionId>
|
||||
<RteComponents xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
|
||||
<d4p1:string></d4p1:string>
|
||||
</RteComponents>
|
||||
<Status>Resolved</Status>
|
||||
<VersionMode>Fixed</VersionMode>
|
||||
<IsComponentInAtProject>true</IsComponentInAtProject>
|
||||
</ProjectComponent>
|
||||
</ProjectComponents>
|
||||
</Store>
|
182
transcodeur/transcodeur.cproj
Normal file
182
transcodeur/transcodeur.cproj
Normal file
|
@ -0,0 +1,182 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="14.0">
|
||||
<PropertyGroup>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectVersion>7.0</ProjectVersion>
|
||||
<ToolchainName>com.Atmel.AVRGCC8.C</ToolchainName>
|
||||
<ProjectGuid>dce6c7e3-ee26-4d79-826b-08594b9ad897</ProjectGuid>
|
||||
<avrdevice>ATmega16</avrdevice>
|
||||
<avrdeviceseries>none</avrdeviceseries>
|
||||
<OutputType>Executable</OutputType>
|
||||
<Language>C</Language>
|
||||
<OutputFileName>$(MSBuildProjectName)</OutputFileName>
|
||||
<OutputFileExtension>.elf</OutputFileExtension>
|
||||
<OutputDirectory>$(MSBuildProjectDirectory)\$(Configuration)</OutputDirectory>
|
||||
<AssemblyName>transcodeur</AssemblyName>
|
||||
<Name>transcodeur</Name>
|
||||
<RootNamespace>transcodeur</RootNamespace>
|
||||
<ToolchainFlavour>Native</ToolchainFlavour>
|
||||
<KeepTimersRunning>true</KeepTimersRunning>
|
||||
<OverrideVtor>false</OverrideVtor>
|
||||
<CacheFlash>true</CacheFlash>
|
||||
<ProgFlashFromRam>true</ProgFlashFromRam>
|
||||
<RamSnippetAddress>0x20000000</RamSnippetAddress>
|
||||
<UncachedRange />
|
||||
<preserveEEPROM>true</preserveEEPROM>
|
||||
<OverrideVtorValue>exception_table</OverrideVtorValue>
|
||||
<BootSegment>2</BootSegment>
|
||||
<eraseonlaunchrule>0</eraseonlaunchrule>
|
||||
<AsfFrameworkConfig>
|
||||
<framework-data xmlns="">
|
||||
<options />
|
||||
<configurations />
|
||||
<files />
|
||||
<documentation help="" />
|
||||
<offline-documentation help="" />
|
||||
<dependencies>
|
||||
<content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.34.1" />
|
||||
</dependencies>
|
||||
</framework-data>
|
||||
</AsfFrameworkConfig>
|
||||
<avrtool>com.atmel.avrdbg.tool.stk500</avrtool>
|
||||
<avrtoolserialnumber />
|
||||
<avrdeviceexpectedsignature>0x1E9403</avrdeviceexpectedsignature>
|
||||
<com_atmel_avrdbg_tool_stk500>
|
||||
<ToolOptions>
|
||||
<InterfaceProperties>
|
||||
<IspClock>125000</IspClock>
|
||||
</InterfaceProperties>
|
||||
<InterfaceName>ISP</InterfaceName>
|
||||
</ToolOptions>
|
||||
<ToolType>com.atmel.avrdbg.tool.stk500</ToolType>
|
||||
<ToolNumber>
|
||||
</ToolNumber>
|
||||
<ToolName>STK500</ToolName>
|
||||
</com_atmel_avrdbg_tool_stk500>
|
||||
<avrtoolinterface>ISP</avrtoolinterface>
|
||||
<avrtoolinterfaceclock>125000</avrtoolinterfaceclock>
|
||||
<com_atmel_avrdbg_tool_simulator>
|
||||
<ToolOptions xmlns="">
|
||||
<InterfaceProperties>
|
||||
</InterfaceProperties>
|
||||
<InterfaceName>
|
||||
</InterfaceName>
|
||||
</ToolOptions>
|
||||
<ToolType xmlns="">com.atmel.avrdbg.tool.simulator</ToolType>
|
||||
<ToolNumber xmlns="">
|
||||
</ToolNumber>
|
||||
<ToolName xmlns="">Simulator</ToolName>
|
||||
</com_atmel_avrdbg_tool_simulator>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
|
||||
<ToolchainSettings>
|
||||
<AvrGcc>
|
||||
<avrgcc.common.Device>-mmcu=atmega16 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.2.132\gcc\dev\atmega16"</avrgcc.common.Device>
|
||||
<avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex>
|
||||
<avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss>
|
||||
<avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep>
|
||||
<avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec>
|
||||
<avrgcc.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures>
|
||||
<avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
|
||||
<avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>
|
||||
<avrgcc.compiler.symbols.DefSymbols>
|
||||
<ListValues>
|
||||
<Value>NDEBUG</Value>
|
||||
</ListValues>
|
||||
</avrgcc.compiler.symbols.DefSymbols>
|
||||
<avrgcc.compiler.directories.IncludePaths>
|
||||
<ListValues>
|
||||
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.2.132\include</Value>
|
||||
</ListValues>
|
||||
</avrgcc.compiler.directories.IncludePaths>
|
||||
<avrgcc.compiler.optimization.level>Optimize for size (-Os)</avrgcc.compiler.optimization.level>
|
||||
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
|
||||
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
|
||||
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
|
||||
<avrgcc.linker.libraries.Libraries>
|
||||
<ListValues>
|
||||
<Value>libm</Value>
|
||||
</ListValues>
|
||||
</avrgcc.linker.libraries.Libraries>
|
||||
<avrgcc.assembler.general.IncludePaths>
|
||||
<ListValues>
|
||||
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.2.132\include</Value>
|
||||
</ListValues>
|
||||
</avrgcc.assembler.general.IncludePaths>
|
||||
</AvrGcc>
|
||||
</ToolchainSettings>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
|
||||
<ToolchainSettings>
|
||||
<AvrGcc>
|
||||
<avrgcc.common.Device>-mmcu=atmega16 -B "%24(PackRepoDir)\atmel\ATmega_DFP\1.2.132\gcc\dev\atmega16"</avrgcc.common.Device>
|
||||
<avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex>
|
||||
<avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss>
|
||||
<avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep>
|
||||
<avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec>
|
||||
<avrgcc.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures>
|
||||
<avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
|
||||
<avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>
|
||||
<avrgcc.compiler.symbols.DefSymbols>
|
||||
<ListValues>
|
||||
<Value>DEBUG</Value>
|
||||
</ListValues>
|
||||
</avrgcc.compiler.symbols.DefSymbols>
|
||||
<avrgcc.compiler.directories.IncludePaths>
|
||||
<ListValues>
|
||||
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.2.132\include</Value>
|
||||
</ListValues>
|
||||
</avrgcc.compiler.directories.IncludePaths>
|
||||
<avrgcc.compiler.optimization.level>Optimize (-O1)</avrgcc.compiler.optimization.level>
|
||||
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
|
||||
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
|
||||
<avrgcc.compiler.optimization.DebugLevel>Default (-g2)</avrgcc.compiler.optimization.DebugLevel>
|
||||
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
|
||||
<avrgcc.linker.libraries.Libraries>
|
||||
<ListValues>
|
||||
<Value>libm</Value>
|
||||
</ListValues>
|
||||
</avrgcc.linker.libraries.Libraries>
|
||||
<avrgcc.assembler.general.IncludePaths>
|
||||
<ListValues>
|
||||
<Value>%24(PackRepoDir)\atmel\ATmega_DFP\1.2.132\include</Value>
|
||||
</ListValues>
|
||||
</avrgcc.assembler.general.IncludePaths>
|
||||
<avrgcc.assembler.debugging.DebugLevel>Default (-Wa,-g)</avrgcc.assembler.debugging.DebugLevel>
|
||||
</AvrGcc>
|
||||
</ToolchainSettings>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="lcd.c">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="lcd.h">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="main.c">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="main.h">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="morse.c">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="morse.h">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="saisieuart.c">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="saisieuart.h">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="timerinterrupt.c">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
<Compile Include="timerinterrupt.h">
|
||||
<SubType>compile</SubType>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<Import Project="$(AVRSTUDIO_EXE_PATH)\\Vs\\Compiler.targets" />
|
||||
</Project>
|
Loading…
Add table
Reference in a new issue