<< Chapter < Page Chapter >> Page >

Line 8 sets AR3 to point to the location hold so that READSER will store serial data there. On Line 9 , READSER 1 reads one serial byte into hold ; the byte is placed in the low-order bits of the word, and thehigh-order bits are zeroed. If a byte was read, AR1 will be set to 1. AR1 is checked in Line 12 ; Line 13 branches back to the top if no byte was read. Otherwise, AR3 is reset to hold (since READSER moved it), then on Line 16 , WRITSER sends the word received. Finally, Line 18 branches back to the start to receive another character.

Using matlab to control the dsp

MATLAB allows you to create a visual interface with standard graphical user-interface ( GUI ) controls such as sliders, checkboxes, and radio buttons to call MATLAB scripts. The following scripts can be used tocreate a sample interface:

  • ser_set.m : Initializes the serial port and user interface
  • wrt_slid.m : Called when sliders are moved to send new data

Creating a matlab user interface

The following code ( ser_set.m ) initializes the serial port COM2, then creates a minimaluser interface consisting of three sliders.

1 % ser_set: Initialize serial port and create three sliders 2 3 % Set serial port mode 4 !mode com2:38400,n,8,1 5 6 % open a blank figure for the slider 7 Fig = figure(1); 8 9 % open sliders 10 11 % first slider 12 sld1 = uicontrol(Fig,'units','normal','pos',[.2,.7,.5,.05],... 13 'style','slider','value',4,'max',254,'min',0,'callback','wrt_slid'); 14 15 % second slider 16 sld2 = uicontrol(Fig,'units','normal','pos',[.2,.5,.5,.05],... 17 'style','slider','value',4,'max',254,'min',0,'callback','wrt_slid'); 18 19 % third slider 20 sld3 = uicontrol(Fig,'units','normal','pos',[.2,.3,.5,.05],... 21 'style','slider','value',4,'max',254,'min',0,'callback','wrt_slid');

Line 4 of this code uses the Windows mode command to set up serial port COM2 (which is connected to the DSP) to match the serial port settingson the DSP evaluation board: 38,400 bps, no parity, eight data bits, and one stop bit. Line 7 then creates a new MATLAB figure for the controls; this preventsthe controls from being overlaid on any graph you may have already created.

Lines 12 through the end create the three sliders for the user interface. Several parameters are usedto specify the behavior of each slider. The first parameter, Fig , tells the slider to create itself in the window we created in Line 7 . The rest of the parameters are property/value pairs:

  • Units

    normal tells MATLAB to use positioning relative to the window boundaries.
  • Pos

    Tells MATLAB where to place the control.
  • Style

    Tells MATLAB what type of control toplace. slider creates a slider control.
  • Value

    Tells MATLAB the default value for the control.
  • Max

    Tells MATLAB the maximum value for the control.
  • Min

    Tells MATLAB the minimum value for the control.
  • Callback

    Tells MATLAB what script to call when the control is manipulated. wrt_slid.m is a MATLAB file that reads the values of the sliders and sends them to the DSP via the serial port.

User-interface callback function

Every time a slider is moved, the file wrt_slid.m is called:

1 % wrt_slid: write values of sliders out to com port 2 3 % open com port for data transfer 4 fid = fopen('com2:','w'); 5 6 % send data from each slider 7 v = round(get(sld1,'value')); 8 fwrite(fid,v,'uint8'); 9 10 v = round(get(sld2,'value')); 11 fwrite(fid,v,'uint8'); 12 13 v = round(get(sld3,'value')); 14 fwrite(fid,v,'uint8'); 15 16 % send reset pulse 17 fwrite(fid,255,'uint8'); 18 19 % close com port connection 20 fclose(fid);

Line 4 of wrt_slid.m opens COM2 for writing. (It has already been initialized by ser_set.m .) Then Line 7 reads the value of the first slider using MATLAB's get function to retrieve the value property. The value is then rounded off to create an integer, and the integer issent as an 8-bit quantity to the DSP in Line 8 . (The number that is sent at this step will appear when the serial port is read with READSER in your code.) Then the other two sliders are sent in the same way.

Line 17 sends 0xFF (255) to the DSP, which can be used to indicate that the threepreviously-transmitted values represent a complete set of data points. Your code can check for the value 255 todetect and correct synchronization errors.

Line 20 closes the serial port. Note that MATLAB buffers the data being transmitted, and data isoften not sent until the serial port is closed. Make sure you close the port after writing a data block to theserial port.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Dsp laboratory with ti tms320c54x. OpenStax CNX. Jan 22, 2004 Download for free at http://cnx.org/content/col10078/1.2
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Dsp laboratory with ti tms320c54x' conversation and receive update notifications?

Ask