{"id":17427262,"url":"https://github.com/jdevlieghere/sortes-clock","last_synced_at":"2025-03-28T00:29:18.489Z","repository":{"id":11838620,"uuid":"14394980","full_name":"JDevlieghere/SORTES-Clock","owner":"JDevlieghere","description":"Software for Real-Time and Embedded Systems","archived":false,"fork":false,"pushed_at":"2013-11-19T21:38:22.000Z","size":12048,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-02T02:26:13.472Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JDevlieghere.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-11-14T12:59:00.000Z","updated_at":"2025-01-07T14:49:07.000Z","dependencies_parsed_at":"2022-08-26T13:11:23.793Z","dependency_job_id":null,"html_url":"https://github.com/JDevlieghere/SORTES-Clock","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JDevlieghere%2FSORTES-Clock","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JDevlieghere%2FSORTES-Clock/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JDevlieghere%2FSORTES-Clock/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JDevlieghere%2FSORTES-Clock/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JDevlieghere","download_url":"https://codeload.github.com/JDevlieghere/SORTES-Clock/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245948370,"owners_count":20698794,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-17T06:06:06.339Z","updated_at":"2025-03-28T00:29:18.463Z","avatar_url":"https://github.com/JDevlieghere.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SORTES\n\n**Software for Real-Time and Embedded Systems**  \n_(Master in Computer Science at the KULEUVEN)_\n\nThe projects are executed on a [PIC18F97J60 Microcontroller](http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en026439) in combination with the [SDCC Compiler](http://sdcc.sourceforge.net/doc/sdccman.pdf).\n\n## Installation \nMake sure you have the package *build essentials* installed. To install the necessary compiler and utilities run the install script `install.sh` located in the install directory. \n\n##Project One: Alarm clock.\nThe first project assignment was the following:\n\u003eThe purpose of this mini-project is to give you the opportunity to design and implement a C program running on a \"naked\" computer, i. e. without the services of the operating system. In particular, you will have to cope with timer interrupts to know what time it is. You will program an alarm clock on a microcontroller (a small computer-on-a chip) built by the Microchip company. On this micromputer, your programs have directly access to the memory and the peripherals. Its architecture is quite different from a classical PC and you will first have to understand it.\n\u003e\n\u003e Your alarm clock will have the following features:  \n 1. The alarm clock will display time in the following format hh:mm:ss. The display will thus have to be updated at least once a second. \n 2. Hours are counted from 0 to 23; the display will thus have to jump from 23:59.59 to 00:00.00 \n 3. The clock time and wake up time must be set when the board is powered up. Ringing is replaced by blinking a led every second during 30 secs. \n 4. When the clock is running, it will be possible to change the wake up time without influencing the clock; it will also be possible to change the clock time. \n 5. The yellow led must blink (1/2 second on, 1/2 second off).  \n\n### Deployment\nTo build and deploy the clock to the PIC a shell script is available. To run this script the package *tftp* is required so make sure you have it installed before trying to deploy. The script will make the `clock.hex` file and start tftp which will wait for input from the user. \n```\n$ ./deploy.sh\n```\nEnter the following command but do not press return just yet. Reset the PIC and wait for the corresponding LED on the router to light up, then press return.\n```\nput clock.hex     \n```\nWhen all of this succeeds, you'll see something like this. The amount of time and bytes may differ.\n```\n$ make clock \n#################### BUILD INIT ####################\nsdcc -mpic16 -p18f97j60 -L /usr/local/lib/pic16 -llibio18f97j60.lib -llibdev18f97j60.lib -llibc18f.lib -L include objects/clock.o objects/LCDBlocking.o objects/newtime.o\nmessage: using default linker script \"/usr/local/share/gputils/lkr/18f97j60.lkr\"\n#################### BUILD DONE ####################\n$ ./deploy.sh \nstarting tftp to 192.168.97.6\nput clock.hex\ntftp\u003e tftp\u003e Sent 35956 bytes in 2.1 seconds\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjdevlieghere%2Fsortes-clock","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjdevlieghere%2Fsortes-clock","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjdevlieghere%2Fsortes-clock/lists"}