ELEC 2220 Semester Design Project
代写report | 代做arm | 代做assembly | project – 这个题目属于一个report的代写任务, 涵盖了report/arm/assembly等方面, 这个项目是project代写的代写题目
Using the STM32F4-Discovery Board, you are to design a system that meets the following requirements:
- The blue LED is to blink at the rate of the selected period;
- The user button is used to input the period, each push of the button selects the next period in the list: [ OFF, 0.5s, 1.0s, 1.5s, 2.0s, 2.5s, 3.0s, 3.5s ];
- These periods must be accurate to the nearest microsecond, thus, requiring the use of a programmable timer. All timing is to be produced by periodic interrupts from a Timer on the microcontroller.
- The User Button is to trigger an interrupt each time it is pressed all responses to the User Button should be done by an interrupt handler.
- LEDs 4, 3 ,5 (green, orange, red) are to display a 3-bit binary number (0 to 7), indicating which of the 8 waveform periods (OFF through 3.5s) is currently selected. For example: when green: no, orange: off, and red: on, represent a number in binary: 101 , that is 5 in decimal, to indicate the system works on the period of 2.5s that is index 5 in the list(OFF is index 0 in the list).
- The system is to initially be OFF.
For extra credit (bonus project) Keeps all the above requirements and enable your
system as a Programmable Function Generator (PFG) capable of producing two different electrical signal waveforms at seven different signal frequencies. The PFG is to meet the following requirements. (If you use STM32F407 board you can create your solution based on Timer 6 that supports interrupt on DAC. However, if you use STM32F11 board, there is no Timer6, you have to use another timer to control the DAC output, which the accuracy of the period of the waveforms may be affected, in this case, it will not reduce your credit).
- Two different waveforms are to be generated, as selected by the user. a. Sawtooth the signal is to rise linearly from 0 volts to 3 volts during each time period of length T. (This should be the default waveform after the system is reset.) b. Triangle the signal is to rise linearly from 0 volts to 3 volts in the first half of each period, and then decrease linearly from 3 volts to 0 volts in the second half of each period, where the total period length is T.
- Each period of the waveform is to comprise 100 data points, spaced evenly across the period. The data are to be 12-bit unsigned numbers, ranging from 0 to 4095. These correspond to output voltages from 0v to 3v, respectively.
- The waveform period and type are to be selected with the User Button on the board as follows.
- However – if the button is pressed twice within a 2-second interval, the waveform type is to be changed to the other format (Sawtooth to Triangle, or vice-versa).
- The digital data values of the waveform are to be converted to analog voltages by the microcontrollers digital-to-analog converter (DAC). The DAC output to be connected to GPIOA pin PA4.
- The data written to the DAC is also to be written to a global variable named DACvalue, which is to be displayed in the Logic Analyzer window of the Keil debugger. This will show the generated waveform, including both magnitude and frequency.
The report of final project: you must submit a one to two-page description of your program design, and an electronic copy of your source program files (please zip your entire project as one file) to Canvas.
The report of bonus project: you must submit a one to two-page description of your program design, screen captures of the logic analyzer window, showing two frequencies for each waveform, and an electronic copy of your source program files (please zip your entire project as one file) to Canvas.
Notes, if you want to submit a report for bonus project, the reports of two projects must be separated, one for final project another for bonus project, and you must indicate the report is for final or bonus project:
- The description in the report must with a title to explicitly tell which project it is for (e.g. title as Report of Final project or Report of bonus project), please also write your name in the beginning of your report.
- The zipped file of source program files must be named as Final_Project or Bonus_Project. In the Main.s file(or the file include __main function) of the project, you must write your name in the top of the file as comments.
Your design will be graded against three criteria.
- The degree to which the program satisfies the above requirements. (Partial credit will be given, as appropriate, in the event that the design does not meet all requirements.)
- The quality of the design, including such factors as modular design and effective use of arm assembly language features.
- Documentation, including effective use of comments throughout the program and a block diagram or flow chart describing the basic system design.