Projet

Général

Profil

« Précédent | Suivant » 

Révision 869

Ajouté par celasherme il y a environ 4 ans

continuation fonction rectrame avec checksum

Voir les différences:

branch/lashermes/sp4c12/SP4c1/SessionM32C_E8a_SYSTEM.ini
[Target]
M32C E8a SYSTEM=Renesas Communications
[USER_DATA]
RESET=fe0000
RESET=fe0002
branch/lashermes/sp4c12/SP4c1/SessionM32C_E8a_SYSTEM.hsf
"{55384715-F881-421C-A548-D7D1ABE158E1}PDMRCtrlViews" "0"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_EVAL_DENORMAL_MODE" "0"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_EVAL_ROUND_MODE" "0"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_0" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_0" "0000000000000DD3"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_1" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_10" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_11" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_12" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_13" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_14" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_15" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_16" "0000000000FE0000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_17" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_18" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_19" "000000000000C400"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_15" "0000000000000400"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_16" "0000000000FE0413"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_17" "0000000000FFFD00"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_18" "000000000000067A"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_19" "0000000000000A04"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_2" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_20" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_20" "0000000000000081"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_21" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_22" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_23" "0000000000000000"
......
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_33" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_34" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_35" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_4" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_5" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_6" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_7" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_4" "0000000000000684"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_5" "0000000000020000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_6" "0000000000000688"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_7" "0000000000000400"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_8" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_9" "0000000000000000"
"{64753FED-D387-4B8C-A91D-D3419C869C07}C_REGISTER_REG_COUNT" "36"
......
"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_SAMPLEING_RATE" "1000"
"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ECX_IMAGE_VIEW" "0,0,0,0,0,0"
"{AC411480-6F0A-11D5-8EB6-00004CC34E9D}ImageCtrlViews" "0"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchCtrlViews" "0"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchCtrlViews" "4"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ColWidth0" "262"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ColWidth1" "150"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ColWidth12" "150"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ColWidth2" "120"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ColWidth3" "200"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0000" "c, 2, 0, P, Col, Hex, MN"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0000_SCOPE" "Current Scope,"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0001" "checksum, 2, 0, P, Col, Hex, MN"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0001_SCOPE" "Current Scope,"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0002" "calc_checksum, 6, 0, P, Col, Hex, MN"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0002_SCOPE" "Current Scope,"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0003" "verif_checksum, 2, 0, P, Col, Dec, MN"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0003_SCOPE" "Current Scope,"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0004" "a, 10, 0, P, Col, Hex, N"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEM0004_SCOPE" "Current Scope,"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd0ECX_WATCH_ITEMCnt" "5"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd1ColWidth0" "120"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd1ColWidth1" "150"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd1ColWidth12" "150"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd1ColWidth2" "120"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd1ColWidth3" "200"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd1ECX_WATCH_ITEMCnt" "0"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd2ColWidth0" "120"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd2ColWidth1" "150"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd2ColWidth12" "150"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd2ColWidth2" "120"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd2ColWidth3" "200"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd2ECX_WATCH_ITEMCnt" "0"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd3ColWidth0" "120"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd3ColWidth1" "150"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd3ColWidth12" "150"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd3ColWidth2" "120"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd3ColWidth3" "200"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWnd3ECX_WATCH_ITEMCnt" "0"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWndInitial_Radix" "0"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWndInstanceKey0" "{WK_00000001_WATCH}SP4C1SessionM32C_E8a_SYSTEM"
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWndRecentFile_WatchRecord" ""
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWndRecentFile_WatchSave" ""
"{B266D880-6FA1-11D5-8613-00A024591A38}WatchWndUpdate_Interval" "100"
......
"{D3D4595F-12B4-4866-8F9A-78C30AC967E3}T_CONFIG_GOOPTION" "0 5 0 0"
"{D3D4595F-12B4-4866-8F9A-78C30AC967E3}T_CONFIG_ROUND" "RM_NEAR"
"{D3D4595F-12B4-4866-8F9A-78C30AC967E3}T_CONFIG_STEPOPTION" "0"
"{D3D4595F-12B4-4866-8F9A-78C30AC967E3}T_EVENT_BC1" "0,0,1,0,1,0,1,0,0,0"
"{D3D4595F-12B4-4866-8F9A-78C30AC967E3}T_EVENT_BC2" "0,0,1,0,1,0"
"{D3D4595F-12B4-4866-8F9A-78C30AC967E3}T_EVENT_BC1" "1,1,0,fe03ff,1,0,1,0,0,0"
"{D3D4595F-12B4-4866-8F9A-78C30AC967E3}T_EVENT_BC2" "1,1,0,fe03de,1,0"
"{D3D4595F-12B4-4866-8F9A-78C30AC967E3}T_EVENT_BC3" "0,0,1,0,1,0,1,0,0,0"
"{D3D4595F-12B4-4866-8F9A-78C30AC967E3}T_EVENT_BC4" "0,0,1,0,1,0,1,0,0,0"
"{D3D4595F-12B4-4866-8F9A-78C30AC967E3}T_SESSION_IS_SAVED" "YES"
......
0
[WINDOW_POSITION_STATE_DATA_VD1]
"Help" "TOOLBAR 0" 59419 1 5 "0.00" 0 0 0 0 0 17 0 "" "0.0"
"{WK_00000001_IO}SP4C1SessionM32C_E8a_SYSTEM" "WINDOW" 59422 0 1 "0.52" 219 0 0 350 200 17 0 "32817|32826|32819|32820|32821" "0.0"
"{WK_00000001_OUTPUT}" "WINDOW" 59422 0 0 "1.00" 219 683 371 350 200 18 0 "36756|36757|36758|36759|<<separator>>|36746|36747|<<separator>>|39531|<<separator>>|39500|39534|<<separator>>|36687" "0.0"
"{WK_00000001_IO}SP4C1SessionM32C_E8a_SYSTEM" "WINDOW" 59422 0 2 "0.52" 266 0 0 350 200 17 0 "32817|32826|32819|32820|32821" "0.0"
"{WK_00000001_OUTPUT}" "WINDOW" 59422 0 1 "0.50" 266 683 371 350 200 18 0 "36756|36757|36758|36759|<<separator>>|36746|36747|<<separator>>|39531|<<separator>>|39500|39534|<<separator>>|36687" "0.0"
"{WK_00000001_WATCH}SP4C1SessionM32C_E8a_SYSTEM" "WINDOW" 59422 0 0 "0.50" 266 0 0 350 200 18 0 "32781|32783|<<separator>>|32771|32829|32772|32827|32773|<<separator>>|32786|<<separator>>|32810|32811|32831" "0.0"
"{WK_00000002_WORKSPACE}" "WINDOW" 59420 0 0 "1.00" 241 683 371 350 200 18 0 "" "0.0"
"{WK_TB00000001_STANDARD}" "TOOLBAR 0" 59419 0 2 "0.00" 0 0 0 0 0 18 0 "" "0.0"
"{WK_TB00000002_EDITOR}" "TOOLBAR 0" 59419 0 0 "0.00" 0 0 0 0 0 18 0 "" "0.0"
branch/lashermes/sp4c12/SP4c1/ncrt0.a30
;---------------------------------------------------------------------
; after reset,this program will start
;---------------------------------------------------------------------
ldc #istack_top, isp ;set istack pointer
ldc #istack_top, isp ;set istack pointer
mov.b #02h,0ah
mov.b #00h,04h ;set processer mode
mov.b #00h,0ah
branch/lashermes/sp4c12/SP4c1/SP4c1.c
#include "sfr32c87.h"
// variable globale
int trame_ok;
// initialisation du port serie
void uart0_init (void)
{
......
return u0rb;
}
int hex2int (char * c) // permet de convertir de l'hexa vers le decimal
{
int i;
int a;
for (i=0;i<2;i++)
{
if (c[i] >= '0' && c[i]<='9')
{
c[i]=c[i]-'0';
}
else
{
c[i]=c[i]-55;
}
}
a =(c[1] + 16*c[0]);
return a;
}
char checksum=0;
int rectrame(char * Buffer)
{
int i=0;
char c;
while(uart0_rx()!='$');
c = uart0_rx();
while(c!='*')
char calc_checksum[2];
char verif_checksum;
while(uart0_rx()!='$'); // on attend d'avoir le debut de la trame avec $
c = uart0_rx(); // sinon on lit deux fois un uart different
while(c!='*') // tant qu'on atteint pas la fin de la trame avec *
{
Buffer[i]= c;
i=i+1;
Buffer[i]= c; // on met dans le buffer la trame
i=i+1; // on incremente de 1
checksum=checksum^c; // ^ pour le ou exclusif entre toutes les valeurs
c = uart0_rx();
}
calc_checksum[0]=uart0_rx();
calc_checksum[1]=uart0_rx();
verif_checksum =hex2int(calc_checksum);
if ( (int) checksum == hex2int(calc_checksum))
{
trame_ok=1;
//uart0_tx('O');
}
else
{
trame_ok=0;
}
return i;
}
......
uart0_tx(carac); // on affiche la nouvelle lettre a chaque fois
}
}*/
char c1,c2;
char trame[100]; // tableau pour stocker la trame
uart0_init(); // initialisation
while(1)
{
//uart0_tx(uart0_rx()+1);//On utilise la fonction tx pour ecrire sur le terminal le resultat que renvoie rx
c1=(char)(rectrame(trame)/10); // On divise par 10 pour avoir 6
c2=(char)(rectrame(trame)%10); // on recupere le modulo de la division soit ici 2
// c1=(char)(rectrame(trame)/10); // On divise par 10 pour avoir 6 car l'uart n'envoi qu'un carac par carac
// c2=(char)(rectrame(trame)%10); // on recupere le modulo de la division soit ici 2 donc les unit? pour au final avoir 62
uart0_tx(c1+48);
uart0_tx(c2+48);
// uart0_tx(c1+48);
// uart0_tx(c2+48);
uart0_tx(rectrame(trame)+48);
if (trame_ok==1)
{
uart0_tx('O');
uart0_tx('K');
}
if (trame_ok==0)
{
uart0_tx('N');
uart0_tx('O');
uart0_tx('N');
}
}
}

Formats disponibles : Unified diff