@picture
wie meinst du das ??
wie schon erwähnt ist das prorammieren nicht meine stärke eher die Hardware.
lg
martin
Druckbare Version
@picture
wie meinst du das ??
wie schon erwähnt ist das prorammieren nicht meine stärke eher die Hardware.
lg
martin
Mit Lookup und Tabelle im Flash kommst du übrigens auf 914 Byte für das gesamte Programm.
das klingt vielversprechend aber lookup und tabellen im flash sagen mir nicht viel.
kannst du dies näher erläutern??
lg
martin
Ich kenne Bascom, so wie du Unterprogramme, gar nicht. :)
MfG
Hast du dir denn mal die Lookup() Funktion angesehen?
Sieht dann so aus:
Erklärung siehe mein Post oben.Code:$regfile "m8def.dat"
$crystal = 1000000
$baud = 1200
Dim Ad As Word
dim ergebnis as Byte, index as word
Config Portb = Output
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Do
Ad = Getadc(0)
if ad < 679 then
ergebnis=100
elseif ad > 1021 then
ergebnis=0
elseif ad > 970 then
ergebnis=10
else
Index = AD - 679 'Vom AD-Wert ziehst du zunächst mal 680 ab, weil die Werte dadrunter immer 100 ergeben.
'Dann bleiben Werte von 0 bis 291 über. Mit
Ergebnis = Lookup(Index, Zeit_daten)
endif
Print " ";Ergebnis;" s" 'gibst du den Wert aus.
loop
end
Zeit_daten:
Data 99, 99, 99 'Daten für 679, 680, 681
Data 98 'Daten für 682
...
Data 11, 11, 11, 11 'Daten für 967, 968, 969, 970
Ich denke übrigens, der Bereich von 921 - 926 soll tatsächlich 20s sein, nicht 21s.
so habe jetzt den Programmansatz von for_ro vollendet und in bascom ohne fehler übersetzt.
kann es leider nicht mehr testen, da der alte Computer mit parallelort zum programmieren im Keller steht.
Ist dies so Korrekt oder muss ich noch etwas hinzufügen ??Code:$regfile "m8def.dat"
$crystal = 1000000
$baud = 1200
Dim Ad As Word
dim ergebnis as Byte, index as word
Config Portb = Output
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Do
Ad = Getadc(0)
if ad < 679 then
ergebnis=100
elseif ad > 1022 then
ergebnis=0
elseif ad >= 971 then
ergebnis=10
else
Index = AD - 679 'Vom AD-Wert ziehst du zunächst mal 680 ab, weil die Werte dadrunter immer 100 ergeben.
'Dann bleiben Werte von 0 bis 291 über. Mit
Ergebnis = Lookup(Index, Zeit_daten)
endif
Print " ";Ergebnis;" s" 'gibst du den Wert aus.
loop
end
Zeit_daten:
Data 99, 99, 99 'Daten für 679, 680, 681
Data 98 'Daten für 682
Data 97, 97
Data 96
Data 95, 95
Data 94, 94
Data 93, 93, 93
Data 92, 92
Data 91, 91
Data 90
Data 89
Data 88, 88
Data 87, 87, 87
Data 86, 86
Data 85, 85
Data 84, 84
Data 83
Data 82, 82, 82
Data 81, 81, 81
Data 80, 80
Data 79
Data 78, 78
Data 77, 77, 77
Data 76, 76
Data 75, 75
Data 74, 74, 74
Data 73, 73
Data 72, 72
Data 71, 71
Data 70, 70
Data 69, 69, 69
Data 68, 68
Data 67, 67, 67, 67
Data 66, 66, 66
Data 65, 65
Data 64, 64
Data 63, 63, 63
Data 62, 62, 62
Data 61, 61, 61
Data 60, 60, 60
Data 59, 59
Data 58, 58, 58, 58
Data 57, 57, 57
Data 56, 56, 56
Data 55, 55
Data 54, 54, 54
Data 53, 53, 53
Data 52, 52, 52, 52
Data 51, 51
Data 50, 50, 50, 50
Data 49, 49, 49
Data 48, 48, 48
Data 47, 47, 47, 47, 47
Data 46, 46, 46
Data 45, 45, 45, 45
Data 44, 44, 44, 44
Data 43, 43, 43
Data 42, 42, 42, 42
Data 41, 41, 41, 41, 41
Data 40, 40, 40, 40
Data 39, 39, 39
Data 38, 38, 38, 38
Data 37, 37, 37, 37
Data 36, 36, 36, 36
Data 35, 35, 35, 35
Data 34, 34, 34, 34
Data 33, 33, 33, 33
Data 32, 32, 32, 32, 32
Data 31, 31, 31, 31, 31
Data 29, 29, 29, 29
Data 28, 28, 28, 28
Data 27, 27, 27, 27, 27
Data 26, 26, 26, 26, 26
Data 25, 25, 25, 25
Data 24, 24, 24, 24, 24
Data 23, 23, 23, 23, 23
Data 22, 22, 22, 22, 22
Data 21, 21, 21, 21, 21, 21
Data 20, 20, 20, 20, 20
Data 19, 19, 19
Data 18, 18, 18, 18, 18, 18
Data 17, 17, 17, 17
Data 16, 16, 16, 16, 16, 16
Data 15, 15, 15, 15, 15
Data 14, 14, 14, 14, 14
Data 13, 13, 13, 13, 13
Data 12, 12, 12, 12, 12, 12, 12
Data 11, 11, 11, 11 'Daten für 967, 968, 969, 970
danke schon mal im vorraus
lg
martin
Hallo for_ro
habe nun dein Programm erfolgreich getestet. Bin echt beeindruckt, das ist wirklich nur ein Bruchteil meines Textes. =D>
Ich hoffe ich lernen das mit Programmieren auch noch mal.
Nun muss ich nur noch kleine Anpassungen vornehmen und dann ist es auch fertig.
Also vielen Dank für den sehr ausführlichen Ansatz!!!
LG
Martin