AD-Wandler - BCD Code + Stoppuhr (ATMega8)

RyoFF

Neues Mitglied
12. Jan. 2012
3
0
0
Sprachen
Hallo,
ich arbeite mit dem ATMega8 und dem AVR-Studio4.

Ich habe zwei fertige Projekte.
Zum Einen habe ich einen AD-Wandler. Durch ein analoges Eingangssignal auf dem AVR Board werden
drei Leuchtdioden in dem Schema von einem BCD- Code angesteuert. Gleichzeitig wird in dem LC
Display der betreffende BCD Code ausgegeben. Der digitale Ausgangswert ist hierbei abhängig von
einem zuvor definierten Bereich des analogen Eingangssignals.

Zum Anderen habe ich eine normale Uhr. Taster 1 = Sekunden starten. Taster 2 = Sekunden halten. Verbindung Lo = Sekunden werden genullt.



Nun möchte ich ein drittes Projekt machen. Dieses Projekt soll beide vorigen Projekte miteinander verbinden. Mit einem Unterschied: Die Sekunden sollen nicht per Tasterdruck gesteuert werden, sondern mit dem BCD-Wert. Sprich: wenn der Code den Wert 0 bis 3 hat, laufen die Sekunden. Sobald der Code den Wert 4 bis 7 erreicht werden die Sekunden genullt und fangen von vorne an zu laufen. Das gleiche jedes Mal, wenn der Code die Grenze 3;4 durchquert.


Bin über Hilfe dankbar, da ich nicht weiß, wie ich das realisieren soll beides zusamenn zu setzen.
Danke
 
Ich habe mir ein wenig Gedanken gemacht und würde gerne statt der Stoppuhr lieber den Summer betätigen. Scheint mir vom Prinzip her vielleicht ein wenig einfacher.
Und zwar würde ich gerne, wenn der BCD Code auf 0 ist, dass der Summer ausbleibt, sobald sich der BCD-Wert erhöht, dass der der summer aktiviert wird. Sprich je Heller es wird, des höher oder tiefer wird der Ton.

mein bisheriges programm sieht so aus. wo und wie könnte ich den summer dort reinbringen?

// einbinden der Headerfiles
#include "u-progr_1.h"

//Beginn des Hauptprogrammes
int main(void){

// Deklarieren der Variablen
int x = 0;

// Hardwarekonfiguration
DDRC &= 0x01; // Eingaenge definieren
DDRB |= 0x07; // Ausgaenge definieren

lcd_init(); // Initialisieren LCD Display
lcd_goto(2,1);
lcd_writeText(" Ausgabe ",16);

while(1){ // Endlosschleife, da Mikrocontrollerprogramme niemals enden

x = messwert(0); // Variable x Ergebnis Unterprogramm Messwert zuweisen

if ((x >0) && (x < 100)) { // Abfrage Wert AD Wandler und Bereich festlegen
setBCD0(); // BCD Code 0 anzeigen

}

if ((x >= 100) && (x < 170)) { // Abfrage Wert AD Wandler und Bereich festlegen
setBCD1(); // BCD Code 1 anzeigen
}

if ((x >= 170) && (x < 340)) { // Abfrage Wert AD Wandler und Bereich festlegen
setBCD2(); // BCD Code 2 anzeigen
}

if ((x >= 340) && (x < 510)) { // Abfrage Wert AD Wandler und Bereich festlegen
setBCD3(); // BCD Code 3 anzeigen
}

if ((x > 510) && (x < 680)) { // Abfrage Wert AD Wandler und Bereich festlegen
setBCD4(); // BCD Code 4 anzeigen
}

if ((x >= 680) && (x < 850)) { // Abfrage Wert AD Wandler und Bereich festlegen
setBCD5(); // BCD Code 5 anzeigen
}

if ((x >= 850) && (x < 1020)) { // Abfrage Wert AD Wandler und Bereich festlegen
setBCD6(); // BCD Code 6 anzeigen
}

if (x >= 1020) { // Abfrage Wert AD Wandler und Bereich festlegen
setBCD7(); // BCD Code 7 anzeigen
}
}
}
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)