{"id":24512141,"url":"https://github.com/robertklee/pwm-interfacing-project","last_synced_at":"2025-03-15T10:10:03.064Z","repository":{"id":124103080,"uuid":"151637411","full_name":"robertklee/PWM-Interfacing-Project","owner":"robertklee","description":null,"archived":false,"fork":false,"pushed_at":"2020-02-27T23:23:28.000Z","size":35,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-22T00:44:32.433Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/robertklee.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-10-04T21:21:26.000Z","updated_at":"2020-02-27T23:23:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"57a1a2d3-6a6a-4a3b-8d9a-9eae6f30c73a","html_url":"https://github.com/robertklee/PWM-Interfacing-Project","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/robertklee%2FPWM-Interfacing-Project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robertklee%2FPWM-Interfacing-Project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robertklee%2FPWM-Interfacing-Project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robertklee%2FPWM-Interfacing-Project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robertklee","download_url":"https://codeload.github.com/robertklee/PWM-Interfacing-Project/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243713416,"owners_count":20335567,"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":"2025-01-22T00:44:54.739Z","updated_at":"2025-03-15T10:10:03.031Z","avatar_url":"https://github.com/robertklee.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Background\nThis project is a final project for the laboratory section of a microprocessor systems course. In this course, the details of hardware-software interplay, memory management, input/output interfacing, and internal/external communication are discussed. The laboratory section endeavours to offer students the opportunity to apply concepts to the design and testing of an advanced embedded system. In the first laboratory demo, interrupts, timers, and General-Purpose Input-Output (GPIO) ports were explored to build a software-based frequency detector for a square wave input. This detector used an Interrupt Service Routine (ISR) triggered on the rising-edge of a general input pin. The ISR uses a timer to count the time elapsed between triggers, and compares this to the timer clock frequency to determine the input square wave frequency. This final project builds upon that to use an analog interface and a LM555N timer to produce the square wave input, rather than using a function generator.\n## Problem Description\nThe objectives of this project can be broken down into the following subsystems:\n1.\tMeasure the resistance of a potentiometer using an STM32F0 microcontroller \n1.\tUse the STM32F0 microcontroller to output an analog voltage\n1.\tBuild a circuit using an LM555 timer to output a square wave\n1.\tBuild a circuit using a 4N35 Optocoupler to enable dynamic frequency adjustment of the timer circuit’s output signal, given the voltage in (2) as input\n1.\tMeasure the frequency of the timer’s signal\n1.\tOutput the signal frequency and potentiometer’s resistance on the display of the PBMCUSLK Project board.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobertklee%2Fpwm-interfacing-project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobertklee%2Fpwm-interfacing-project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobertklee%2Fpwm-interfacing-project/lists"}