Balkan_Devil
Mitglied
Hallo !
Habe einen ADuC841 µC mit dem ich einen Transistor konstant auf 34 grad halten will. Und durch gewollte Einflüsse (kälter/wärmer) verändert sich die Temperatur des Transistors. Meine Aufgabe besteht darin die Temperatur konstant auf 34 grad zu halten und die Leistung dafür zu berechnen.
Unser einziges Problem ist noch die Berechnung der Leistung.
Das Rechecksignal ändert sich durch die Einflüsse je nach Kälte und Wärme. Ist der Transistor kälter so muss geheizt => mehr leistung nöitg
Es sollte eine Momentan- und Gesamtleistung ausgegeben werden.
Mein erster Versuch funktioniert nicht.
Und zwar wurde immer die letzte positive Flanke gemerkt und bei der nächsten positiven Flanke berechnet.
Hier mal der Code:
if(ADC_Wert <= limit) // Im Limit steht der "Spannungswert für 34 grad" in HEX
{
P20 = 0x00; // nicht heizen
letztes_null = 1; // letzte positive flanke
}
else
{
P20 = 0xFF; // heizen
if (letztes_null == 1)
{
Prozentwert =((durchgaenge_eins * 10) / durchgaenge) * 100;
durchgaenge_gesamt += durchgaenge;
durchgaenge_eins_gesamt += durchgaenge_eins;
Prozentwert_gesamt = ((durchgaenge_eins_gesamt* 10) / durchgaenge_gesamt)*100 ;
durchgaenge_gesamt = 0;
durchgaenge_eins_gesamt =0;
letztes_null = 0;
durchgaenge_eins = 0;
durchgaenge = 0;
}
durchgaenge_eins++;
}durchgaenge++;
Es sollen die Durchgänge gemerkt werden und somit die Leistung berechnet werden. Doch meine Idee funktioniert nicht.
Ich hoffe jemand kann mir helfen.
Code auch als textdokument bereitgestellt zur besseren Übersicht
LG
Habe einen ADuC841 µC mit dem ich einen Transistor konstant auf 34 grad halten will. Und durch gewollte Einflüsse (kälter/wärmer) verändert sich die Temperatur des Transistors. Meine Aufgabe besteht darin die Temperatur konstant auf 34 grad zu halten und die Leistung dafür zu berechnen.
Unser einziges Problem ist noch die Berechnung der Leistung.
Das Rechecksignal ändert sich durch die Einflüsse je nach Kälte und Wärme. Ist der Transistor kälter so muss geheizt => mehr leistung nöitg
Es sollte eine Momentan- und Gesamtleistung ausgegeben werden.
Mein erster Versuch funktioniert nicht.
Und zwar wurde immer die letzte positive Flanke gemerkt und bei der nächsten positiven Flanke berechnet.
Hier mal der Code:
if(ADC_Wert <= limit) // Im Limit steht der "Spannungswert für 34 grad" in HEX
{
P20 = 0x00; // nicht heizen
letztes_null = 1; // letzte positive flanke
}
else
{
P20 = 0xFF; // heizen
if (letztes_null == 1)
{
Prozentwert =((durchgaenge_eins * 10) / durchgaenge) * 100;
durchgaenge_gesamt += durchgaenge;
durchgaenge_eins_gesamt += durchgaenge_eins;
Prozentwert_gesamt = ((durchgaenge_eins_gesamt* 10) / durchgaenge_gesamt)*100 ;
durchgaenge_gesamt = 0;
durchgaenge_eins_gesamt =0;
letztes_null = 0;
durchgaenge_eins = 0;
durchgaenge = 0;
}
durchgaenge_eins++;
}durchgaenge++;
Es sollen die Durchgänge gemerkt werden und somit die Leistung berechnet werden. Doch meine Idee funktioniert nicht.
Ich hoffe jemand kann mir helfen.
Code auch als textdokument bereitgestellt zur besseren Übersicht
LG