Hättest Du einen Tip für mich wo diese mathematischen Zusammenhänge auch für Laien einigermaßen verständlich und nachvollziehbar erklärt sind?Zitat:
Zitat von Ratber
Druckbare Version
Hättest Du einen Tip für mich wo diese mathematischen Zusammenhänge auch für Laien einigermaßen verständlich und nachvollziehbar erklärt sind?Zitat:
Zitat von Ratber
In anlehnung an eine bekannte Buchreihe suchst du in etwa "Induktion für dummies"Zitat:
Zitat von Bot-Builder
Das wird es wohl nicht geben.
Das liegt, vorsichtig gesagt, an der komplexität des Themas selber.
Genauso könnte man nach "Kernphysik für dummies" suchen wenn man vor hat selber einen Reaktor zu bauen.
Sorry !
Das sicherlich nicht.Zitat:
Zitat von Ratber
Das es sich hier um eine komplexes Thema handelt, ist schon klar.Zitat:
Zitat von Ratber
Irgendwie kommen wir, vorsichtig gesagt, nicht wirklich weiter. Weiss Du was, vergiss es einfach.Zitat:
Zitat von Ratber
Was den nun ?
Entweder du nimmst dir die nötige Zeit und lernst das Teilgebiet das ich mal vereinfacht mit "Induktion und Magnetismus" betitel.
Oder du machst es wie viele andere nach der Trial and Error Methode.
Dazwischen gibt es nichts ausser "nachbauen" von schon vorhandenen und dokumentierten Projekten.
Mußt dich nur entscheiden.
Zitat:
Irgendwie kommen wir, vorsichtig gesagt, nicht wirklich weiter. Weiss Du was, vergiss es einfach.
Auch ne Möglichkeit..... ;)
Hallo alle zusammen
Ich weiß zwar das dieses Thema schon länger inaktiv ist trotzt dem wollt ich hier mal eine Frage los werden. Ich bin gerade dabei mir eine Propeller Uhr zu bauen und wollte fragen wie man aus einer Tabelle mit mehren Dateien hinter einander eine nach der andern ziehen kann.
Oder wie man das mit der Zeichen Auswahl besser machen kam.
Ich will nämlich die Uhrzeit nicht wie im Original an 4 Sieben Segment anzeigen aus geben sonder über einen Propeller mit 8 led’s . Zu sagen ist noch das an den Itn0 Pin eine Lichtschranke habe die gegen Masse zieht nur an einer Stelle durch eine Blechfahne unterbrochen wird und dann plus potenzial an den Pin anliegt.
Ich hoffe einer von euch kann mir helfen oder Verbesserungsvorschläge machen.
Ich wehre sehr dankbar darüber, weil ich auch noch nicht sehr lange mit Bascom arbeite.
Hier noch mein Quellcode der von der Black- Strom Uhr von Wolfgang Schwarz abgeleitet ist:
Code:'*******************************************************************************
' http://www.black-strom.de.vu/
'
'
' Feature:
' - mit Interner Zeitbasis (Timer1)
' - Multiplexausgabe auf Siebensegmentanzeige (Timer0)
' - Uhr ist über zwei Taster einstellbar.
'
' To Do:
' -
'
' Feature for the future:
' - anderer µC evnt. ATMega8, da der 902312 für den rest nicht reichen wird
' - Uhr stellen über RC5, braucht Timer0
' - Wecker
' - DCF77 empfang
' - Datum zusätzliche über Alphanumerische anzeigen
'
'
' History:
' - V2.3.3 wird ein taster zum uhr stellen länger betätigt> schnellvorlauf
' - V2.3.2 beim uhr stellen die sekunden auf null setzen
' - V2.3.1 Uhren Code aus dem Inetrupt Label ind die Hauptschleife verschoben.
' - V2.3 Uhren Code umgeschrieben; jede Ziffer wir jetzt einzelnt gezählt,
' Function Bcdzahl und Label Multiplex wir überflüssig.
' Die Uhr ist jetzt einstellbar.
' - V2.2 Bugy <ö#+Q@
' - V2.1 Uhr geeicht auf 4MHz > Load_timer1 = 62755
' - V2.0 erster Hardware test
' - V1.0 nur am PC getestet
'
' HW Stack: 40 ; SW Stack 20 ; Framesize: 16
'
'*******************************************************************************
' µC Deklarationen
$regfile = "2313def.dat" 'AT90S2313-Deklarationen
$crystal = 4000000
' Variablen
Dim Temp_ziffer As Byte 'welche ziffer soll bearbeitet werden
Dim Bcd_aus As Byte 'enthält den Wert der dez zahl die ausgegeben werden soll
Dim Ausgang As Byte 'Segmentfolge die Ausgegeben wird aus Segmentcode - Tabelle
Dim Sek_blink As Bit 'Blinkt im Sekunden Takt
Dim Zl_sekunde As Byte 'Zeit Variablen
Dim Zl_minute As Byte 'enthalten die Uhrzeit
Dim Zl_stunde As Byte 'Zl-... => Low Wert der Zeit
Dim Zh_sekunde As Byte 'Zh-... => High Wert der Zeit
Dim Zh_minute As Byte
Dim Zh_stunde As Byte
'Dim A As Byte
'Dim B As Byte
'Dim B1 As Byte
'A = 1
' Ein-/Ausgänge
Config Portb = Output
Portb = Ausgang 'Port B als Ausgang
Ddrd = &B1111111
Config Portd = Input
Ddrd = &B11111000 '1 Ausgang, 0 Eingang
Portd = &B0000111 'pull up w.
'Eingänge:
T_min_stellen Alias Pind.0
T_h_stellen Alias Pind.1
Licht Alias Pind.2
' Sonstiges
Const Load_timer1 = 62755 'Konstande auf die der Timer1 geladen wird
'4MHz = 62755 | 62760 etwas zu langsam <> 62750 etwas zu schnell
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
' Timer0 für Multiplexausgabe
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
'On Timer0 7segment 'Interrupt-Routine für Timer0-Overflow
'Config Timer0 = Timer , Prescale = 1 'Takt: Quarz/Prescale (möglich: 1, 8, 64, 256, 1024)
'Enable Timer0 'Timer0-Overflow-Interrupt einschalten
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
' Timer 1 als Zeitbasis
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
On Timer1 Sekunde_plus 'Interrupt-Routine für Timer1-Overflow
Config Timer1 = Timer , Prescale = 64 'Takt: Quarz/Prescale (möglich: 1, 8, 64, 256, 1024)
Enable Timer1 'Timer0-Overflow-Interrupt einschalten
Enable Interrupts 'Interrupts global zulassen
Load Timer1 , Load_timer1 'Lädt den Timer auf einen wert vor
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
' Hauptprogramm
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Do 'Start Hauptschleife
' ### Uhren Code ###
' Es wird für jede Ziffer einzelnd gezählt, das ermöglicht eine einfacher ausgabe
' auf den 7segmentanzeigen. Der Zählvorgang funktioniert ím prinzip wie z.B.
' bei einem normalen Logik Zähler-IC
If Zl_sekunde = 10 Then 'Wenn der Sekunden Low Wert = 10
Zl_sekunde = 0 'wird er auf 0 gesetzt
Incr Zh_sekunde 'und der High Wert um eins erhöht
If Zh_sekunde = 6 Then 'Ist der High Wert 6 (entspricht 60 Sekunden)
Zh_sekunde = 0 'wird er auf 0 gesetzt
Incr Zl_minute 'und der Minuten Low Wert um eins erhöht
End If
End If
If Zl_minute = 10 Then
Zl_minute = 0
Incr Zh_minute
End If
If Zh_minute = 6 Then
Zh_minute = 0
Incr Zl_stunde
End If
If Zl_stunde = 10 Then
Zl_stunde = 0
Incr Zh_stunde
End If
If Zh_stunde = 2 And Zl_stunde = 4 Then
Zl_stunde = 0
Zh_stunde = 0
End If
' ### Uhr stellen ###
' Wird der Taster "T_min_stellen" betätigt werden die Minuten um eins erhöht.
' Wird der Taster "T_h_stellen" betätigt werden die Stunden um eins erhöht.
' Werden beide gleichzeitig betätigt werden Stunden und Minuten auf Null gesetzt.
' Wird einer der Taster länger betätigt (> 150ms) gibt es einen schnellvorlauf
If T_min_stellen = 0 Then 'Wird "T_min_stellen" betätigt
Waitms 1 'Entprellen
If T_min_stellen = 0 Then 'Ist der Taster immer noch betätigt
Incr Zl_minute 'wird Minute um eins erhöht
Zl_sekunde = 0 'Sekunden auf Null setzen
Zh_sekunde = 0
End If
End If
If T_h_stellen = 0 Then
Waitms 1
If T_h_stellen = 0 Then
Incr Zl_stunde
Zl_sekunde = 0
Zh_sekunde = 0
End If
End If
If T_min_stellen = 0 And T_h_stellen = 0 Then 'Wenn "T_Min_stellen" und "T_H_stellen" gleichzeitig betätigt
Zl_minute = 0 'dann werden Minuten und Stunden auf 0 gestzt
Zh_minute = 0
Zl_stunde = 0
Zh_stunde = 0
End If
'Loop 'Ende Hauptschleife
'End 'Programm Ende
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
' Bei jedem Aufruf wir nur eine Ziffer ausgegeben, d.h nur eine Anzeige wird
' angesteuert. Die anderen bleiben dunkel. Bei jedem Aufruf wird eine Anzeige
' weitergeschaltet.
'
' Anzeigen anordnung
'
' 1111 2222 3333 4444
' 1 1 2 2 3 3 4 4
' 1111 2222 3333 4444
' 1 1 2 2 3 3 4 4
' 1111o 2222o 3333o 4444o
'
' ^-- Dezimalpunkt
' ^---- 4. Ziffer | Minute Low Wert | Variable Zl_minute
' ^---------- 3. Ziffer | Minute High Wert | Variable Zh_minute
' ^----------------- 2. Ziffer | Stunde Low Wert | Variable Zl_stunde
' ^----------------------- 1. Ziffer | Stunde High Wert | Variable Zh_stunde
'7segment:
If Licht = 0 Then
If Temp_ziffer = 4 Then Temp_ziffer = 0 'bestimmt die auszugebende Ziffer (1 bis 4)
Incr Temp_ziffer 'bei jedem aufruf des Lable wir eine andere Ziffer ausgegeben
Select Case Temp_ziffer 'welche Ziffer soll angesteuert werden
Case 1 : Bcd_aus = Zh_stunde
Case 2 : Bcd_aus = Zl_stunde
Case 3 : Bcd_aus = Zh_minute
Case 4 : Bcd_aus = Zl_minute
End Select
Select Case Bcd_aus
Case 1 : Ausgang = Lookup(1 , Segmentfolge)
Case 2 : Ausgang = Lookup(2 , Segmentfolge)
Case 3 : Ausgang = Lookup(3 , Segmentfolge)
Case 4 : Ausgang = Lookup(4 , Segmentfolge)
Case 5 : Ausgang = Lookup(5 , Segmentfolge)
Case 6 : Ausgang = Lookup(6 , Segmentfolge)
Case 7 : Ausgang = Lookup(7 , Segmentfolge)
Case 8 : Ausgang = Lookup(8 , Segmentfolge)
Case 9 : Ausgang = Lookup(9 , Segmentfolge)
Case 0 And Temp_ziffer = 1 : Ausgang = Lookup(10 , Segmentfolge) 'Nullstellenunterdrückung bei der ersten Ziffer
Case 0 And Temp_ziffer > 1 : Ausgang = Lookup(0 , Segmentfolge) 'wenn nicht erste Ziffer Null anzeigen
End Select
Portb = Ausgang
'Ausgabe des 7 Segmentcodes (Invertierend [Not] bei Anz. mit gem. Anode)
End If
Portb = 0
Loop
'Return
End
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
' Interrupt-Routine für Timer1 / Zeitbasis
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Sekunde_plus:
Load Timer1 , Load_timer1 'Lädt den Timer auf einen wert vor
Incr Zl_sekunde 'Erhöht den Low Wert der Sekunde um eins
Toggle Sek_blink 'Ändert sich jede Sek., 1sec an 1sec aus
Return
' * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
' * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
' * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Segmentfolge: 'GFEDCBA / "1" Segment AN
Data 126 , 131 , 133 , 137 , 145 , 161 , 193 , 126 '0
Data 0 , 1 , 33 , 97 , 255 , 1 , 1 , 0 '1
Data 33 , 67 , 133 , 137 , 145 , 161 , 65 , 1 '2
Data 130 , 129 , 129 , 145 , 145 , 145 , 145 , 110 '3
Data 4 , 12 , 20 , 36 , 68 , 132 , 255 , 4 '4
Data 226 , 145 , 145 , 145 , 145 , 145 , 145 , 142 '5
Data 62 , 81 , 145 , 145 , 145 , 145 , 145 , 142 '6
Data 128 , 128 , 128 , 128 , 143 , 144 , 160 , 192 '7
Data 110 , 145 , 145 , 145 , 145 , 145 , 145 , 110 '8
Data 112 , 145 , 145 , 145 , 145 , 145 , 145 , 126 '9
Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 'Leerzeichen