mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wie muß dieser einfache Code umformuliert werden?


Autor: Microchip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe folgendes Problem. In einem Basicdialekt sind nur 16 Bit(Also 
maximal 256 * 256 Werte) zugelassen. Meine Rechnung übersteigt 
regelmäßig 16 Bit:

Wie muß folgendes umformuliert werden, damit maximal Werte von 65536 
entstehen, die Formel zum Warten aber dennoch richtige Werte ergibt?

For a = 23 * 6000 To 1 Step -1
    'Etwas tun
    'Warten 10*a/138
Next a

Autor: Markus Müller (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In Basic gibt es doch auch den Datentyp LONG oder nicht?

Autor: Microchip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein.

Autor: hmm? (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
For a = 23 * 6000 To 1 Step -1
    'Etwas tun
     if a > maximalwert then a = dein maximalwert
    'Warten 10*a/138
Next a

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du einen Datentyp unsigned (also ohne Vorzeichen) zur Verfügung?

10 * 6000  macht 60000.
Das passt noch in einen vorzeichenlosen 16 Bit Datentyp.

Autor: oldy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was für ein Basic Programm benutzt du ?
Kann mir nicht vorstellen das du nur bis zu 65535
rechnen kannst.

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Entweder so:
For a2 = 23 To 1 Step -1
  For a = 6000 To 1 Step -1
    'Etwas tun Achtung: a hat hier einen anderen Wert!

    For a3 = 1 To 23
      'Warten 10*a/138
    Next a3
  Next a
Next a2
oder eine vernünftige Sprache nehmen.

Autor: Microchip (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Leider funktioniert es noch nicht, es wird gleich ganz hell oder 
flackert dazwischen etwas. Es handelt sich um eine Dimmerschaltung.

Zu "Welle": RA0 und RA2(Siehe vereinfachte Skizze) sind die Eingänge des 
internen Komparators. Ist RA0 > RA2 wird Welle = 1. In jeder Halbwelle 
ergibt sich also ein Rechtecksignal.

Ideen?

"Minuten" = 23
"Triac" = Triac(nicht in Skizze aufgeführt)
"Pauseus" = Pause in µs
"High" = Setze 1 / Ein
"Ein" = 1
"Aus" = 0

For Extern = Minuten To 1 Step - 1
    For WH = 1 To 6000
        Low Triac
        For Innen = 1 To Minuten
            Pauseus 10 * WH/(6*Minuten)
        Next Innen
        High Triac
        If Welle = Ein Then
            While Welle = Ein
            Wend
        EndIf
        Low Triac
        Low Led
        If Welle = Aus Then
            While Welle = Aus
            Wend
        EndIf
    Next WH
Next Extern

Autor: Master Snowman (snowman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bitte mach bilder wenn alles in rauch aufgeht, ja?! ...nee, mal im 
ernst: wenn deine schaltung so aussieht wie der schaltplan gezeichnet 
ist, dann starte vorerst ein paar gehversuche, bevor du auf den mond 
fliegen willst. bitte tu dir den gefallen und lass hochspannung sein, 
dein leben wird dir danken.

Autor: meinereiner nur nicht reiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Microchip schrieb:
> es

Was ist es?
ein toastlet vielleicht?
Troll dich

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für natürliche Auslese gibt es ja kaum noch ordentliche Gefahren 
heutzutage.

Autor: Lehrmann Michael (ubimbo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ist das denn für ein Schaltplan ?

Microchip schrieb:
> Zu "Welle": RA0 und RA2(Siehe vereinfachte Skizze) sind die Eingänge des
> internen Komparators.

Ist falsch. RA0 ist Analogeingang und RA2 ist die Referenzspannung. Mit 
dem interenen Komperator hat das herzlich wenig zu tun.

RA3 und RA4 sind Komperatoreingänge (bei dir nicht beschaltet). Wie das 
mit der Schwellspannung ist weiss ich nicht weil das PICspezifisch ist 
und im Schaltplan der PIC nicht näher klassifiziert ist. Ansonsten 
könnte es schon der gleiche Pin (Vref) sein. Welcher PIC wird denn 
verwendet ? Ich nehme mal an, dass es ein PIC ist wegen der 
ICSP-Pin-Benennung.

Autor: H.Joachim Seifert (crazyhorse)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schon mal den Begriff "Timer" gehört"?

Autor: Microchip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Master Snowman schrieb:
> bitte mach bilder wenn alles in rauch aufgeht, ja?! ...nee, mal im
> ernst: wenn deine schaltung so aussieht wie der schaltplan gezeichnet
> ist, dann starte vorerst ein paar gehversuche, bevor du auf den mond
> fliegen willst. bitte tu dir den gefallen und lass hochspannung sein,
> dein leben wird dir danken.

Was redest du nur für einen Schwachsinn? In welcher Welt sind 9V 
Wechselspannung bei 200mA lebensgefährlich? Schonmal die Sicherung 
gesehen du Depp? Wahrscheinlich nicht, aber grundlos Angst machen ist 
immer gut. Gerate nur mal an jemanden, der sich nicht so gut wie ich 
auskennt.

Klaus Wachtler schrieb:
> Für natürliche Auslese gibt es ja kaum noch ordentliche Gefahren
> heutzutage.

Was willst du mir unterstellen?

Lehrmann Michael schrieb:
> Ist falsch. RA0 ist Analogeingang und RA2 ist die Referenzspannung. Mit
> dem interenen Komperator hat das herzlich wenig zu tun.

Seite 62 im Handbuch lesen und schweigen.

Lehrmann Michael schrieb:
> Welcher PIC wird denn
> verwendet ? Ich nehme mal an, dass es ein PIC ist wegen der
> ICSP-Pin-Benennung.

Ein 16F628A

H.joachim Seifert schrieb:
> Schon mal den Begriff "Timer" gehört"?

Ja.

Autor: Klaus De lisson (kolisson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> In welcher Welt sind 9V Wechselspannung bei 200mA lebensgefährlich?


....  auf Kaskadia und dem "Villardschen Planeten "



und was willst Du jetzt eigentlich wissen ?

Gruss Klaus

p.s.

du kannst deine Parameter "kürzen" -> Mathematik
oder einfach auf 2 stck. verschachtelte For-Next verteilen und damit
ein Long simulieren

Autor: Jochen Fe. (jamesy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Microchip schrieb:
> Gerate nur mal an jemanden, der sich nicht so gut wie ich
> auskennt.
>
Dann verstehe ich nicht, warum es diesen Thread gibt ;-)

Autor: Microchip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jochen Fe. schrieb:
> Dann verstehe ich nicht, warum es diesen Thread gibt ;-)

Das ist dann dein Problem ;-)

Klaus De lisson schrieb:
> du kannst deine Parameter "kürzen" -> Mathematik
> oder einfach auf 2 stck. verschachtelte For-Next verteilen und damit
> ein Long simulieren

Kannst du nicht.
Meinst du das, was unter http://toastlet.iamtoast.biz/ddd passiert ist?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.