Documente Academic
Documente Profesional
Documente Cultură
FACULTATEA DE ELECTROTEHNICĂ ȘI
ELECTROENERGETICĂ
STUDENTI:
MISCHIA SERGIU
STANESCU DORINEL PROF.: ING. HULEA DAN
Anul IV
SCHEMA ELECTRICĂ IN PROTEUS
SCHEMA IN MATLAB:
REZULTATUL DUPA FINALIZAREA SCHEMEI IN MATLAB:
CODUL IN MPLAB-X:
/*
* -------------------------------------------------------------------
* MPLAB 16-Bit Device Blocks for Simulink v3.38.
*
* Product Page: http://www.microchip.com/SimulinkBlocks
* Forum: http://www.microchip.com/forums/f192.aspx
* Wiki: http://microchip.wikidot.com/simulink:start
* -------------------------------------------------------------------
* File: mischia.c
*
* Code generated for Simulink model 'mischia'.
*
* Model version : 1.5
* Simulink Coder version : 8.11 (R2016b) 25-Aug-2016
* C/C++ source code generated on : Sat Apr 20 21:13:08 2019
*/
#include "mischia.h"
#include "mischia_private.h"
/* Real-time model */
RT_MODEL_mischia_T mischia_M_;
RT_MODEL_mischia_T *const mischia_M = &mischia_M_;
/* initialize non-finites */
rt_InitInfAndNaN(sizeof(real_T));
/* states (dwork) */
(void) memset((void *)&mischia_DW, 0,
sizeof(DW_mischia_T));
/*
* File trailer for generated code.
*
* [EOF]
*/
EXPLICAREA PROGRAMULUI:
Dupa generarea schemei in Matlab Simulink am generat codul cu ajutorul functiei build
model, si codul este prezentat mai sus.
Motor.c si motor_main.c sunt fisierele sursa in care este generat codul pentru
microcontroler.
Functia void motor_step0(void) este functia main care este urmata switch si 5 case, in
care switch e o instrucțiune de comutare permite ca o variabilă să fie testată pentru
egalitate cu o listă de valori. Fiecare valoare se numește caz(case), iar variabila care este
activată este verificată pentru fiecare caz de comutare. Se verifica egalitatea .
motor_DW.ADC =ADCBuffChannelA[0]; este functia care ajuta ADC pentru a fi
initializat in codul sursa.
P1DC1 = motor_DW.DataTypeConversion este initializat dutycycle pentru a genera in
codul sursa semnalul PWM.
In finalul programului se gasesti registri pentru PWM si ADC.
EXPLICAREA REGISTRILOR:
PWM1CON2 = 0x00;,valoarea 0x00, (0000 0000 0000 0000 în binar) atribuita pentru PWM1CON2 arată
că doar pinii UDIS, IUE și OSYNC ceilalți sunt dezactivați.
AD1CHS0 = 0x01, valoarea 0x01(0000 0000 0000 0001 în binar) avem canalului 0 si intrare pozitiva pe
AN1
P1TCON = 0x8000; (in binar 1000000000000000),activeaza PWM, PTEN activ restul pinilor dezactivati,iar
cand PTEN=1 va rezulta ca timer este activ.
AD1CON2 = 0x00; valoarea 0x00(0000 0000 0000 0000 în binar) , intreruperea ADC este generată la
finalizarea fiecărei operațiuni de eșantionare .ALTS=0,intotdeauna se selecteaza intrarea pentru Sample
A.
EXPLICAREA UNOR INSTRUCȚIUNI DIN ASAMBLARE:
SIMULAREA PROIECTULUI GENERAT: