University : Central Queensland University UniLearnO is not sponsored or endorsed by this college or university.
Assignment Task :

 Objective 

As part of the assessment for this course, you are required to undertake a project which will test you against some of the more practical learning objectives of the course. The project will enable you to demonstrate your understanding of 

• C programming 

• C programming for the AVR 

• The Atmel Studio environment. 

You are required to modify a program in order to implement additional features. The program is a simple version of the game Space Impact. The AVR ATmega324A microcontroller runs the program and receives input from a number of sources and outputs a display to a LED matrix display board, with additional information being output to a serial terminal and, to be implemented as part of this project, a seven segment display and other LEDs. 

The version of Space Impact provided to you will implement basic functionality – the background scrolls left to right and aliens appear and move but the player can only move in one direction (up) and the game ends immediately when the player dies once. You can add features such as scoring, moving in other directions, multiple lives, sound effects, etc. The different features have different levels of difficulty and will be worth different numbers of marks. Don’t Panic! 

You have been provided with over 2700 lines of code to start with. Whilst this code may seem confusing, you don’t need to understand all of it. The code provided does a lot of the hard work for you, e.g., interacting with the serial port and the LED display. To start with, you should read the header (.h) files provided along with project.c, player.c, projectile.c and alien.c. You may need to look at the AVR C Library documentation to understand some of the functions used. A video will be provided to introduce the project. 

 

 Program Description 

The program you will be provided with has several C files which contain groups of related functions. The files provided are described below. The corresponding .h files (except for project.c) list the functions that are intended to be accessible from other files. You may modify any of the provided files. You may add additional files if desired. You must submit ALL files used to build your project, even if you have not modified some provided files. Many files make assumptions about which AVR ports are used to connect to various IO devices. You should not change these. 

• project.c – this is the main file that contains the event loop and examples of how time-based events are implemented. You should read and understand this file. 

• game_position.h/game_position.c – contains an explanation of how positions are represented in the game, some useful macro definitions, and some functions to calculate neighbouring positions. 

• player.h/player.c – contains code related to the player in the game (e.g. player movement and display). You should read these files and understand the representation used for the player. You will need to modify this file to add required functionality. 

• alien.h/alien.c – contains code related to the aliens. You should read at least the header file (alien.h) and you may need to read/modify the .c file for some of the more advanced functionality. 

• projectile.h/projectile.c – contains code related to the projectiles fired by the player. You should read at least the header file (projectile.h) and you may need to read/modify the .c file for some of the more advanced functionality. 

• game_background.h/game_background.c – contains code related to the scrolling game background. You should read at least the header file (game_background.h) and you may need to read/modify the .c file for some of the more advanced functionality. 

• buttons.h/buttons.c – contains the code which deals with the IO board push buttons. It sets up pin change interrupts on those pins and records rising edges (buttons being pushed). 

• ledmatrix.h/ledmatrix.c – contains functions which give easier access to the services provided by the LED matrix. It makes use of the SPI routines implemented in spi.c 

• pixel_colour.h – contains definitions of some useful LED matrix colours 

• score.h/score.c – contains code for keeping track of and adding to the score. This module is not used in the provided code. 

• scrolling_char_display.h/scrolling_char_display.c – contains code which provides a scrolling message display on the LED matrix board. 

• timer0.h/timer0.c – contains code that sets up a timer that is used to generate an interrupt every millisecond and keep track of a global time value. 

• serialio.h/serialio.c – contains code that is responsible for handling serial input and output using interrupts. It also maps the C standard IO routines (e.g. printf() and fgetc()) to use the serial interface so you are able to use printf() etc for debugging purposes if you wish. You should not need to look in this file, but you may be interested in how it works and the buffer sizes used for input and output (and what happens when the buffers fill up). 

• spi.h/spi.c – contains code that encapsulates all SPI communication. Note that by default, all SPI communication uses busy waiting – the “send” routine returns only when the data is sent.

 

This IT Computer Science Assignment has been solved by our IT Experts at UniLearnO. Our Assignment Writing Experts are efficient to provide a fresh solution to this question. We are serving more than 10000+ Students in Australia, UK & US by helping them to score HD in their academics. Our Experts are well trained to follow all marking rubrics & referencing style.

Be it a used or new solution, the quality of the work submitted by our assignment experts remains unhampered. You may continue to expect the same or even better quality with the used and new assignment solution files respectively. There’s one thing to be noticed that you could choose one between the two and acquire an HD either way. You could choose a new assignment solution file to get yourself an exclusive, plagiarism (with free Turnitin file), expert quality assignment or order an old solution file that was considered worthy of the highest distinction.

  • Uploaded By : Grace
  • Posted on : June 05th, 2019
  • Downloads : 326

Whatsapp Tap to ChatGet instant assistance