Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@0:2a1ab6aefb7c, 2021-05-27 (annotated)
- Committer:
- jack1930
- Date:
- Thu May 27 12:55:57 2021 +0000
- Revision:
- 0:2a1ab6aefb7c
GSOE HP1819A1 mit Timer
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| jack1930 | 0:2a1ab6aefb7c | 1 | /* mbed Microcontroller Library |
| jack1930 | 0:2a1ab6aefb7c | 2 | * Copyright (c) 2019 ARM Limited |
| jack1930 | 0:2a1ab6aefb7c | 3 | * SPDX-License-Identifier: Apache-2.0 |
| jack1930 | 0:2a1ab6aefb7c | 4 | */ |
| jack1930 | 0:2a1ab6aefb7c | 5 | |
| jack1930 | 0:2a1ab6aefb7c | 6 | #include "mbed.h" |
| jack1930 | 0:2a1ab6aefb7c | 7 | #include "platform/mbed_thread.h" |
| jack1930 | 0:2a1ab6aefb7c | 8 | |
| jack1930 | 0:2a1ab6aefb7c | 9 | InterruptIn LS1(PA_1); |
| jack1930 | 0:2a1ab6aefb7c | 10 | InterruptIn LS2(PA_6); |
| jack1930 | 0:2a1ab6aefb7c | 11 | DigitalIn ResetBehaelter(PA_10); |
| jack1930 | 0:2a1ab6aefb7c | 12 | |
| jack1930 | 0:2a1ab6aefb7c | 13 | PortIn waage(PortB,0xFF); |
| jack1930 | 0:2a1ab6aefb7c | 14 | int sollwert=128; |
| jack1930 | 0:2a1ab6aefb7c | 15 | |
| jack1930 | 0:2a1ab6aefb7c | 16 | PortOut ausgaenge(PortC,0b11111); |
| jack1930 | 0:2a1ab6aefb7c | 17 | volatile int anz=0; |
| jack1930 | 0:2a1ab6aefb7c | 18 | |
| jack1930 | 0:2a1ab6aefb7c | 19 | |
| jack1930 | 0:2a1ab6aefb7c | 20 | |
| jack1930 | 0:2a1ab6aefb7c | 21 | |
| jack1930 | 0:2a1ab6aefb7c | 22 | void warte1s() |
| jack1930 | 0:2a1ab6aefb7c | 23 | { |
| jack1930 | 0:2a1ab6aefb7c | 24 | RCC->APB1ENR |= 0b10000; //TIM6 mit Takt versorgen |
| jack1930 | 0:2a1ab6aefb7c | 25 | TIM6->PSC=31999; //Prescaler für 1ms |
| jack1930 | 0:2a1ab6aefb7c | 26 | TIM6->CNT=0; //Counter mit 0 starten |
| jack1930 | 0:2a1ab6aefb7c | 27 | TIM6->ARR=999; //Autoreload für 1s (1000ms Zählwert von 0-999 |
| jack1930 | 0:2a1ab6aefb7c | 28 | TIM6->SR=0; //Überlaufflag zurücksetzen |
| jack1930 | 0:2a1ab6aefb7c | 29 | TIM6->CR1=1; //setzt CEN auf 1 => startet den Timer |
| jack1930 | 0:2a1ab6aefb7c | 30 | while (TIM6->SR==0); //Warten auf Überlauf |
| jack1930 | 0:2a1ab6aefb7c | 31 | TIM6->CR1=0; //setzt CEN auf 0 => stoppt den Timer |
| jack1930 | 0:2a1ab6aefb7c | 32 | } |
| jack1930 | 0:2a1ab6aefb7c | 33 | |
| jack1930 | 0:2a1ab6aefb7c | 34 | |
| jack1930 | 0:2a1ab6aefb7c | 35 | |
| jack1930 | 0:2a1ab6aefb7c | 36 | void isrLS1() |
| jack1930 | 0:2a1ab6aefb7c | 37 | { |
| jack1930 | 0:2a1ab6aefb7c | 38 | ausgaenge=ausgaenge&0b11101; |
| jack1930 | 0:2a1ab6aefb7c | 39 | warte1s(); |
| jack1930 | 0:2a1ab6aefb7c | 40 | if (waage<sollwert) |
| jack1930 | 0:2a1ab6aefb7c | 41 | { |
| jack1930 | 0:2a1ab6aefb7c | 42 | ausgaenge=ausgaenge|0b00001; |
| jack1930 | 0:2a1ab6aefb7c | 43 | } |
| jack1930 | 0:2a1ab6aefb7c | 44 | else |
| jack1930 | 0:2a1ab6aefb7c | 45 | { |
| jack1930 | 0:2a1ab6aefb7c | 46 | ausgaenge=ausgaenge&0b11110; |
| jack1930 | 0:2a1ab6aefb7c | 47 | } |
| jack1930 | 0:2a1ab6aefb7c | 48 | ausgaenge=ausgaenge|0b00010; |
| jack1930 | 0:2a1ab6aefb7c | 49 | } |
| jack1930 | 0:2a1ab6aefb7c | 50 | DigitalOut test(PC_7); |
| jack1930 | 0:2a1ab6aefb7c | 51 | char ampel[5]={0b00010,0b10010,0b01010,0b01110,0b00100}; |
| jack1930 | 0:2a1ab6aefb7c | 52 | void isrLS2() |
| jack1930 | 0:2a1ab6aefb7c | 53 | { |
| jack1930 | 0:2a1ab6aefb7c | 54 | anz++; |
| jack1930 | 0:2a1ab6aefb7c | 55 | ausgaenge=ampel[anz]; |
| jack1930 | 0:2a1ab6aefb7c | 56 | test=1; |
| jack1930 | 0:2a1ab6aefb7c | 57 | } |
| jack1930 | 0:2a1ab6aefb7c | 58 | void initISR() |
| jack1930 | 0:2a1ab6aefb7c | 59 | { |
| jack1930 | 0:2a1ab6aefb7c | 60 | LS1.mode(PullDown); |
| jack1930 | 0:2a1ab6aefb7c | 61 | LS2.mode(PullDown); |
| jack1930 | 0:2a1ab6aefb7c | 62 | ResetBehaelter.mode(PullDown); |
| jack1930 | 0:2a1ab6aefb7c | 63 | waage.mode(PullDown); |
| jack1930 | 0:2a1ab6aefb7c | 64 | LS1.fall(&isrLS1); |
| jack1930 | 0:2a1ab6aefb7c | 65 | LS2.fall(&isrLS2); |
| jack1930 | 0:2a1ab6aefb7c | 66 | } |
| jack1930 | 0:2a1ab6aefb7c | 67 | |
| jack1930 | 0:2a1ab6aefb7c | 68 | |
| jack1930 | 0:2a1ab6aefb7c | 69 | |
| jack1930 | 0:2a1ab6aefb7c | 70 | |
| jack1930 | 0:2a1ab6aefb7c | 71 | int main() |
| jack1930 | 0:2a1ab6aefb7c | 72 | { |
| jack1930 | 0:2a1ab6aefb7c | 73 | ausgaenge=0b00010; |
| jack1930 | 0:2a1ab6aefb7c | 74 | initISR(); |
| jack1930 | 0:2a1ab6aefb7c | 75 | |
| jack1930 | 0:2a1ab6aefb7c | 76 | while (true) { |
| jack1930 | 0:2a1ab6aefb7c | 77 | if (ResetBehaelter==1) |
| jack1930 | 0:2a1ab6aefb7c | 78 | { |
| jack1930 | 0:2a1ab6aefb7c | 79 | ausgaenge=0b00010; |
| jack1930 | 0:2a1ab6aefb7c | 80 | anz=0; |
| jack1930 | 0:2a1ab6aefb7c | 81 | } |
| jack1930 | 0:2a1ab6aefb7c | 82 | } |
| jack1930 | 0:2a1ab6aefb7c | 83 | } |