Hi, I'm using simulink to program TMS320F28027 microcontroller. Each second a two bytes buffer is being sent to SCI transmiter (the function called by interruption INT9.2 is empty). I would like to send the data only when I want, not periodically (p.e. when a switch is on, etc). I don't know how to do so because in Sample time you must put a real number. Any ideas? Thank you very much. PD: do not take into account ADC-PWM Synchronization via ADC Interrupt…
MATLAB: TMS320F28027: Simulink SCI transmit disable
c2000scisimulinktms320f28027
Related Solutions
The attached model configures GPIO0 as external interrupt to trigger the blinking of LED. The custom code in the System Initialize block assigns GPIO0 as an input to trigger the XINT1 interrupt:
EALLOW; GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 0; GpioIntRegs.GPIOXINT1SEL.bit.GPIOSEL = 0; EDIS; XIntruptRegs.XINT1CR.bit.ENABLE = 1; XIntruptRegs.XINT1CR.bit.POLARITY = 1;
The ISR toggles the LED based on a rising edge of GPIO00. Connect GPIO to 3V and GND in order to blink the LED.
When you are in enough of a hurry that you can't afford to follow a lead from someone who is trying to help, then it is time to call Mathworks technical support. The people who answer questions here are volunteers, and most of them are not Mathworks staff. When you see someone's name here in a link, look right after the link: Mathworks staff have the little Mathworks icon -- but even those staff are volunteers.
------
In your hurry, you omitted to say what your device is. I researched all of the devices that are documented as supporting SCI. The links to their SCI Transmit blocks are:
All of the blocks explicitly state they support vectors of data, including vectors of uint8. There is, however, an important clue in the mpc555 description:
The Serial Transmit block transmits bytes via either of the MPC555 QSMCM submodules SCI1 or SCI2. You can use it either to transmit a fixed number of bytes, or, by enabling the second input, transmit a variable number of bytes each time this block is called. With SCI1, a hardware buffer is used that allows up to 16 bytes to be queued for transmission. With SCI2, the buffer allows only up to one byte to be queued each time the block is called. Once bytes are queued for transmit, they will be sent as fast as possible by the serial interface hardware with no further intervention required by the rest of the application.
Thus, if you happen to be using mpc555 and you are using it with two input ports, one of which is the number of bytes to transmit, then in that mode only one byte is accepted per trigger of the block, and so that one mode would complain if you tried to pass in a vector.
Corresponding two-input uses are not documented for the c28* series. I do not have the toolbox so I cannot experiment to see if the same construction applies.
There is also a relevant technical support note that is suggestive in the situation: 1-92LEMV . It presumes that vectors can be sent, but notes that in some circumstances you have to do klutzy things to build the vectors.
Best Answer