Bascom BASCOM ; Erste Schritte zum Ausprobieren

nächste Teilaufgabe wäre nun, das erste Teilprogramm so zu erweitern, daß jedes andere Zeichen als "1", "0", "t" und "?" die Helligkeit von Kanal B steuert.
Ich hoffe, dass ich dieses mal die Aufgabe gelöst habe.


CodeBox BascomAVR
$regfile = "m8def.dat"        'Controllerdefinitionsdatei einbinden
$crystal = 8000000            'Systemtakt angeben (Baudrate)
$hwstack = 40                 'Stacks
$swstack = 16
$framesize = 32
$baud = 19200                 'Baudrate UART

Dim Zeichen As Byte           'UART-Empfang
Dim Z As Byte                 'Timerüberlaufzähler

Rot Alias Portd.7             'Namen für LED-Beine
Gruen Alias Portc.3
Config Rot = Output           'Ausgänge
Config Gruen = Output
Rot = 1                       'LEDs erstmal an
Gruen = 1

'Phasenkorrekter 8-Bit-PWM, PWM-Frequenz=245Hz
Config Timer1 = Pwm , Prescale = 64 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Pwm1a = 250
Pwm1b = 50

Do                            'Hauptschleife Begin
   'erstes Teilprogramm - UART Empfang und auswerten
   If Ischarwaiting() = 1 Then       'Wenn Zeichen Empfangen
      Zeichen = Inkey()       'dann Zeichen aus Puffer lesen
      If Zeichen = "1" Then   'Wenn Zeichen = "1"
         Rot = 1              '...
         Print "Led An"
      Elseif Zeichen = "0" Then       'Wenn Zeichen = "0"
         Rot = 0              '...
         Print "Led Aus"
      Elseif Zeichen = "t" Then       'Wenn Zeichen = "t"
         Toggle Rot           '...
         Print "Toggle Led"
      Elseif Zeichen = "?" Then       'Wenn Zeichen = "?"
           If Rot = 0 Then      'Dann wenn Led an ist...
           Print "Led ist aus"
        Elseif Rot = 1 Then     'sonst wenn Led aus ist...
           Print "Led ist an"
         End If
      Elseif Zeichen = "a" Then
         Pwm1a = 250
         Pwm1b = 50
         Print "A=Hell und B=Dunkel"
      Elseif Zeichen = "b" Then
         Pwm1a = 50
         Pwm1b = 250
         Print "A=Dunkel und B=Hell"
      End If

   End If

   'zweites Teilprogramm - LED durch timer blinken lassen
   If Tifr.tov1 = 1 Then      'wenn Timer übergelaufen ist
      Tifr.tov1 = 1           'Überlaufflag zurücksetzen
      Incr Z
      If Z = 245 Then         'Überläufe zählen (245)
         Z = 0                'Zähler zurücksetzen
         Toggle Gruen         'LED toggeln
      End If
   End If

Loop                          'Hauptschleife Ende
 
Ich meinte eigentlich, daß jedes andere Zeichen die Intensität von Kanal B direkt festlegt.
Also Kanal A soll konstant bleiben.
Das empfangene Zeichen (das ist ja ein Byte, also eine binäre Zahl) soll Kanal B zugewiesen werden - außer wenn es sich um die Zahlen/Zeichen handelt, die die rote LED ansteuern.

Also:
Wenn eine "1" empfangen wurde, mach rot an
sonst->Wenn eine "0" empfangen wurde, mach rot aus
sonst->Wenn ein "t" empfangen wurde, toggle rot
sonst->Wenn ein "?" empfangen wurde, melde den Status von rot
sonst-> weise das empfangene Zeichen Kanal B zu.
 
Da hab ich mich zu früh gefreut.
Wie ich eine Binäre Zahl dem Kanal B zuweise, hab ich keine Vorstellung.
 
Du hast doch immerhin schon mal einen Teilerfolg :)
Beim AVR (8-bitter) sind Zeichen gleichzeitig auch Bytes. Nur beim PC und möglicherweise ARM sieht es anders aus, ignorieren wir hier mal.
Ein Byte ist an sich schon eine Zahl. Also einfach Pwm1a = Zeichen

Das blöde ist jetzt nur, dass das Terminalprogramm auch Hexwerte senden können muss. HTerm kann es meine ich, aber normal ist das nicht. Ok, mit Groß/Kleinschreibung sollte man Unterschiede sehen können. Aber das wäre denn wohl eine nächste Aufgabe.

Dennoch, du schlägst dich gut, Kopf hoch :)
 
Also einfach Pwm1a = Zeichen
Machma Kanal B draus...
Das blöde jetzt wäre so nur dass das Terminalprogramm auch Hexwerte senden können muss.
Nö, Du kannst doch ebenso ASCII-Code xyz übertragen lassen. Für das Bascom-Terminal siehe HinweisII in #154...

P.S.: hterm kann das natürlich, deswegen hatte ich es ja auch anfangs vorgeschlagen - aber das war eine weitere (unnötige) Baustelle für Heini
Dennoch, du schlägst dich gut, Kopf hoch :)
:good2:
 
Zuletzt bearbeitet:
Oops, von mir aus auch B ^^
Und ja, aber die (dezimal gesehen) Werte sind so eng beieinander dass man kaum einen Unterschied sehen wird. Das meinte ich.
 
???
Du kannst so jeden ASCII senden, also alle möglichen 256 Bytes... (0..255), nicht nur die darstellbaren Zeichen
 
Nicht bei jedem Terminal Programm. Mit Tricks vielleicht, über Alt-Gr und Numpad, nur blöd wenn man kein Numpad hat ;)
Sonst ist man auf a-zA-Z0-9 und eine Hand voll Sonderzeichen beschränkt.
Also Terminals wie Putty, Telnet (ok, passt hier nicht da Netzwerk) ... Den Bascom Simulator betrifft das afaik auch.
 
Du kannst mit Deiner Tastatur direkt nicht alle Codes eingeben, nur die Zahlen, Buchstaben und ein paar Zeichen. Du kannst im Bascom-Terminal allerdings auch den Wert ("value") eines ASCII senden lassen (Terminal->send ASCII Character->Zahl zwischen 0..255 eingeben und Enter).
Etwas komfortabler ist, im Terminal die ALT-Taste gedrückt zu halten, auf dem NumPad der Tastatur den Wert vierstellig einzugeben (also mit führenden Nullen), und dann die ALT-Taste loszulassen.
Wert heißt hier dezimal (also 0..255)


8051
Das Fragezeichen ("Led ist aus") wurde mit (ALT + 0063) eingetippt, über Terminal-> send ASCII geht's aber auch...
 
Zuletzt bearbeitet:
Hi
Eigentlich ist Bascom nicht meine Plattform und ich möchte nicht LotadaC in seinen Unterricht pfuschen, aber Heini-14, du mußt schon wissen, wenn du ein Bit bewertest, oder ein Byte. So wie ich es sehe, ist Tifr ein Byte, wahrscheinlich ein (spezielles) Register. Tifr.tov1 ein Bit davon, vermutlich Bit 1. Dieses kann auch nur 1 oder 0 sein. Tifr allerdings kann jeden Wert zwischen 0 und 255 annehmen, ist ja en Byte. Wenn du also schreibst If tifr =255 dann müssen alle Bits in dem Register gesetzt sein, um die Bedingung zu erfüllen. Da du aber auf ein spezielles Bit reagieren willst, macht eine Auswertung mit dem Bitnamen tov1 mehr Sinn und den Code lesbarer, wie "If tifr=1", was in diesem Fall zwar das gleiche Bit anspricht. (Vermutlch, denn natürlich kann tov1 auch als Bit6 definiert sein). Also, anz wichtig, du arbeitest nicht mit dem schönen Text, den dir Bascom bietet, sondern ist einem Controller, der nur 0Volt oder 5Volt erkennt und daraus Low (0) oder High (1) macht und es in seiner internen Befehlmatix bearbeitet. Daher merk dir, in der Regel deutet ein Punkt in einem Variablennamen auf die Unterteilung auf en Bit hin.
Gruß
 
in der Regel deutet ein Punkt in einem Variablennamen auf die Unterteilung auf en Bit hin
Hallo oldmax,
meinst Du damit Zeile 55, der Punkt zwischen Tifr und tov1?
If Tifr.tov1 = 1 Then
Ich muss noch dazu sagen, dass ich totaler Anfänger bin. Ich konnte vor diesem Forum eine Led blinken lassen oder eine Led nach einer bestimmten Zeit aus bzw. einschalten (Lehrunterricht von cassio an Jordy).
Ich wusste auch nicht, wie man ein Terminal bedient. Da hab ich jetzt bemerkt, dass mein Terminal wie LotadaC beschrieben
Das Fragezeichen ("Led ist aus") wurde mit (ALT + 0063) eingetippt, über Terminal-> send ASCII geht's aber auch...
bei mir mit und auch ohne den führenden "00" die Funktion ausführt.
und
Hallo LotadaC,
Pwm1a=Zeichen
Machma Kanal B draus.
ich hab beides ausprobiert, hin und her geschoben, keine Veränderung der Led's- Bei "Kanal B" meldet Bascom in der entsprechenden Zeile Fehler.
 
Wie gesagt, habe ich mehrere Varianten ausprobiert und immer wieder zurück gestellt.
Ich weiß schon gar nicht mehr, was ich alles hatte. Eine Version sieht so aus.


CodeBox BascomAVR
$regfile = "m8def.dat"        'Controllerdefinitionsdatei einbinden
$crystal = 8000000            'Systemtakt angeben (Baudrate)
$hwstack = 40                 'Stacks
$swstack = 16
$framesize = 32
$baud = 19200                 'Baudrate UART

Dim Zeichen As Byte           'UART-Empfang
Dim Z As Byte                 'Timerüberlaufzähler

Rot Alias Portd.7             'Namen für LED-Beine
Gruen Alias Portc.3
Config Rot = Output           'Ausgänge
Config Gruen = Output
Rot = 1                       'LEDs erstmal an
Gruen = 1

'Phasenkorrekter 8-Bit-PWM, PWM-Frequenz=245Hz
Config Timer1 = Pwm , Prescale = 64 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Pwm1a = 250
Pwm1b = 50

Do                            'Hauptschleife Begin
   'erstes Teilprogramm - UART Empfang und auswerten
   If Ischarwaiting() = 1 Then       'Wenn Zeichen Empfangen
      Zeichen = Inkey()       'dann Zeichen aus Puffer lesen
      If Zeichen = "1" Then   'Wenn Zeichen = "1"
         Rot = 1              '...
         Print "Led An"
      Elseif Zeichen = "0" Then       'Wenn Zeichen = "0"
         Rot = 0              '...
         Print "Led Aus"
      Elseif Zeichen = "t" Then       'Wenn Zeichen = "t"
         Toggle Rot           '...
         Print "Toggle Led"
      Elseif Zeichen = "?" Then       'Wenn Zeichen = "?"
           If Rot = 0 Then    'Dann wenn Led an ist...
           Print "Led ist aus"
        Elseif Rot = 1 Then   'sonst wenn Led aus ist...
           Print "Led ist an"
         End If
           Pwm1B = Zeichen
      End If

   End If

   'zweites Teilprogramm - LED durch timer blinken lassen
   If Tifr.tov1 = 1 Then      'wenn Timer übergelaufen ist
      Tifr.tov1 = 1           'Überlaufflag zurücksetzen
      Incr Z
      If Z = 245 Then         'Überläufe zählen (245)
         Z = 0                'Zähler zurücksetzen
         Toggle Gruen         'LED toggeln
      End If
   End If

Loop                          'Hauptschleife Ende

Hab hier mal eine ASCII Tabelle
 
Zuletzt bearbeitet:
Kosmetisches:
Die Einrückungen stimmen nicht - Rechtsklick -> proper indent
Die Kommentare in Zeile 37 und 39 sind vertauscht.

So...
der Timer hat zwei Output Compare Module. A und B. Jedes dieser Module vergleicht bei jedem Timerschritt den Timer-Wert mit seinem Vergleichswert. Das wurde mit "Compare A PWM = …" bzw "Compare B PWM = …" in Zeile 19 eingestellt.
Für die jeweiligen Vergleichswerte besitzen die Module je ein Output Compare Register. OCR1A bzw OCR1B. (in Wirklichkeit sind es je zwei 8-Bit-Register, da Timer1 ein 16-Bit-Timer ist, aber darum kümmert Bascom sich).
Bascom erlaubt außerdem PWM1A und PWM1B als Name - landet in denselben Registern, klar?
Die Zahlen in PWM1A und PWM1B legen jetzt also die Intensitäten der LEDs fest, das hattest Du bereits in #161 gesehen.

ok, erstmal ein Zwischenschritt (Code aus #174):

In Zeile 26 wurde das Zeichen aus dem Puffer geholt (und zwar nur, wenn auch eins empfangen wurde - Prüfung in Zeile 25).
Danach wurde in den Zeilen 27, 30, 33 und 36 geprüft, ob "1", "0", "t" oder "?" empfangen wurde, und ggf 'ne entsprechende Aktion eingeleitet.
Das End If in Zeile 41 schließt das Elseif in Zeile 39.
Zeilen 42 und 43 ignorieren wir, die fliegen wieder raus.
Das End if in Zeile 44 schließt das Elseif in Zeile 36 (Fragezeichen empfangen ? )

In Zeile 45 landet man also immer, wenn ein Zeichen Empfangen und abgeholt wurde. Zwischendurch wurde ggf die rote LED manipuliert/ausgewertet, aber in Zeile 45 enthält die Variable "Zeichen" noch immer den ASCII-Code des empfangenen Zeichens.
An dieser Stelle soll das empfangene Zeichen PWM1B zugewiesen werden. Erstmal ohne weitere Prüfung.
PWM1B = Zeichen
Mehr nicht...

P.S.:
Hab hier mal eine ASCII Tabelle
Ich hab hier das Tafelwerk (von meiner Frau "geliehen") - mein altes von 1969 weist keine ASCII-Tabelle auf...
 
Zuletzt bearbeitet:
Hab in #174 geändert. Allerdings hatte ich das bei meinen Versuchen bestimmt auch schon gehabt, wobei keine Änderung an den Les's zu erkennen war.
enthält die Variable "Zeichen" noch immer den ASCII-Code des empfangenen Zeichens.
Demzufolge müsste das Zeichen noch im Speicher bzw. Puffer liegen. Sehe ich das so richtig?
 
In Zeile 8 wird die Variable "Zeichen" definiert, und zwar als Byte. Das erzeugt selbst keinen Code, Bascom legt aber für sich fest, daß irgendeine Byte-Zelle im SRAM jetzt als Speicherort dieser Variable festgelegt ist. Wahrscheinlich Adresse 0x60.
In Der Hauptschleife wird (nach der Überprüfung ob was empfangen wurde) in Zeile 26 mit inkey() jedesmal ein Zeichen aus dem Puffer geladen (es ist dann also nicht mehr im Puffer), und in der Variable Zeichen abgelegt (also irgendwo im SRAM, wahrscheinlich bei Adresse 0x60).
Was Vorher da stand, wird überschrieben.
In den nachfolgenden Zeilen wird dann abgefragt, ob der Inhalt von "Zeichen" (also der Speicheradresse) irgendwelchen diskreten Werten entspricht - das ändert aber nicht den Inhalt der Zelle selbst.
Erst, wenn das nächste Zeichen empfangen wurde, und in Zeile 26 erneut zugewiesen wird, ändert es sich...

Wenn Du die Einrückungen mal korrigiert hättest (rechtsklick -> proper indent) würdest Du sehen, daß Zeile 36 (Elseif Fragezeichen) und Zeile 43 (End If dazu) einen Block aufspannen, der eben nur dann ausgeführt wird, wenn Zeichen ein Fragezeichen enthält (also 63 dezimal ist).
Nur dann weist Du in Zeile 42 PWM1B was zu, nämlich 63 dezimal.
Es soll aber in jedem Fall 'ne Zuweisung erfolgen, also außerhalb dieses Blockes (aber natürlich nur, wenn einZeichen empfangen wurde, also innerhalb des Blockes zwischen "If Ischarwaiting…" und dem dazugehörenden "End If"
 
mal zur Veranschaulichung:

8052
Die Zuweisung PWM1B=Zeichen erfolgt beim Code aus #174 bei *1*
Funktionieren würde es auch bei *2* , aber eigentlich soll sie nur bei *3* erfolgen ...
 
Nachdem ich mit proper indent (richtiger Einzug) die Kosmetik ausgebessert habe, wäre eine Zuweisung
Es soll aber in jedem Fall 'ne Zuweisung erfolgen, also außerhalb dieses Blockes (aber natürlich nur, wenn einZeichen empfangen wurde, also innerhalb des Blockes zwischen "If Ischarwaiting…" und dem dazugehörenden "End If"
eigentlich irgendwo dazwischen, aber sicherlich nach dem abfragen nach der Roten Led.
Nur dann weist Du in Zeile 42 PWM1B was zu, nämlich 63 dezimal.
Mit 63 ist doch die Eingabe für "?". Wie schon sagte, geht die Eingabe mit Tastatur bei mir auch ohne den führenden "00", also Alt+63. Ist das korrekt?
Okay, jetzt kam noch eine anschauliche Grafik hinzu. Also dachte ich mir, dass es so passt

CodeBox BascomAVR
$regfile = "m8def.dat"                  'Controllerdefinitionsdatei einbinden
$crystal = 8000000                      'Systemtakt angeben (Baudrate)
$hwstack = 40                           'Stacks
$swstack = 16
$framesize = 32
$baud = 19200                           'Baudrate UART

Dim Zeichen As Byte                     'UART-Empfang
Dim Z As Byte                           'Timerüberlaufzähler

Rot Alias Portd.7                       'Namen für LED-Beine
Gruen Alias Portc.3
Config Rot = Output                     'Ausgänge
Config Gruen = Output
Rot = 1                                 'LEDs erstmal an
Gruen = 1

'Phasenkorrekter 8-Bit-PWM, PWM-Frequenz=245Hz
Config Timer1 = Pwm , Prescale = 64 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Pwm1a = 250
Pwm1b = 50

Do                                      'Hauptschleife Begin
'erstes Teilprogramm - UART Empfang und auswerten
   If Ischarwaiting() = 1 Then          'Wenn Zeichen Empfangen
      Zeichen = Inkey()                 'dann Zeichen aus Puffer lesen
      If Zeichen = "1" Then             'Wenn Zeichen = "1"
         Rot = 1                        '...
         Print "Led An"
      Elseif Zeichen = "0" Then         'Wenn Zeichen = "0"
         Rot = 0                        '...
         Print "Led Aus"
      Elseif Zeichen = "t" Then         'Wenn Zeichen = "t"
         Toggle Rot                     '...
         Print "Toggle Led"
      Elseif Zeichen = "?" Then         'Wenn Zeichen = "?"
         If Rot = 0 Then                'sonst wenn Led aus ist...
            Print "Led ist aus"
         Elseif Rot = 1 Then            'Dann wenn Led an ist...
            Print "Led ist an"
         Elseif Zeichen = "b" Then
            Pwm1b = 250
         End If
      End If
   End If

'zweites Teilprogramm - LED durch timer blinken lassen
   If Tifr.tov1 = 1 Then                'wenn Timer übergelaufen ist
      Tifr.tov1 = 1                     'Überlaufflag zurücksetzen
      Incr Z
      If Z = 245 Then                   'Überläufe zählen (245)
         Z = 0                          'Zähler zurücksetzen
         Toggle Gruen                   'LED toggeln
      End If
   End If

Loop                                    'Hauptschleife Ende

Leider auch nicht. Ich komme nicht weiter!!!
 
aber sicherlich nach dem abfragen nach der Roten Led.
Aber nicht innerhalb des "Eleseif Zeichen = "?""-Blockes.
Derzeit hast Du:
8053
Die rote LED kann nur an oder aus sein, die Abfrage Zeichen = "b" wird also nie gestellt. Aber selbst wenn sie gestellt werden würde, wäre Zeichen dann nie "b", da Du in dem Zweig ja nur ankommst, wenn Du die Frage Zeichen = "?" mit ja beantworten konntest, Zeichen also "?" ist, und somit eben nicht "b".

Aber Du sollst gar nicht Fragen, ob Zeichen "b" ist, sondern nur die Zuweisung PWM1B=Zeichen vornehmen, und zwar in der Darstellung aus #178 bei *3* oder zumindest bei *2*.
 
Zuletzt bearbeitet:
Der Code zu *2*:


CodeBox BascomAVR
$regfile = "m8def.dat"                                      'Controllerdefinitionsdatei einbinden
$crystal = 8000000                                          'Systemtakt angeben (Baudrate)
$hwstack = 40                                               'Stacks
$swstack = 16
$framesize = 32
$baud = 19200                                               'Baudrate UART

Dim Zeichen As Byte                                         'UART-Empfang
Dim Z As Byte                                               'Timerüberlaufzähler

Rot Alias Portd.7                                           'Namen für LED-Beine
Gruen Alias Portc.3
Config Rot = Output                                         'Ausgänge
Config Gruen = Output
Rot = 1                                                     'LEDs erstmal an
Gruen = 1

'Phasnekorrekter 8-Bit-PWM, PWM-Frequenz=245Hz
Config Timer1 = Pwm , Prescale = 64 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Pwm1a = 200
Pwm1b = 100

Do                                                          'Hauptschleife Begin
   'erstes Teilprogramm - UART Empfang und auswerten
   If Ischarwaiting() = 1 Then                              'Wenn Zeichen Empfangen
      Zeichen = Inkey()                                     'dann Zeichen aus Puffer lesen
      If Zeichen = "1" Then                                 'Wenn Zeichen = "1"
         Rot = 1                                            '...
         Print "Led An"
      Elseif Zeichen = "0" Then                             'Wenn Zeichen = "0"
         Rot = 0                                            '...
         Print "Led Aus"
      Elseif Zeichen = "t" Then                             'Wenn Zeichen = "t"
         Toggle Rot                                         '...
         Print "Toggle Led"
      Elseif Zeichen = "?" Then                             'Wenn Zeichen = "?"
         If Rot = 0 Then                                    'Dann wenn Led aus ist...
            Print "Led ist aus"
         Elseif Rot = 1 Then                                'sonst wenn Led an ist...
            Print "Led ist an"
         End If
      End If
      Pwm1b = Zeichen                                    'sonst PWM1B zuweisen
   End If

   'zweites Teilprogramm - LED durch timer blinken lassen
   If Tifr.tov1 = 1 Then                                    'wenn Timer übergelaufen ist
      Tifr.tov1 = 1                                         'Überlaufflag zurücksetzen
      Incr Z
      If Z = 245 Then                                       'Überläufe zählen (245)
         Z = 0                                              'Zähler zurücksetzen
         Toggle Gruen                                       'LED toggeln
      End If
   End If

Loop        

Das bewirkt aber, daß auch 48, 49, 116 und 63 die PWM-LED beeinflussen. Um das zu vermeiden Variante *3*:


CodeBox BascomAVR
$regfile = "m8def.dat"                                      'Controllerdefinitionsdatei einbinden
$crystal = 8000000                                          'Systemtakt angeben (Baudrate)
$hwstack = 40                                               'Stacks
$swstack = 16
$framesize = 32
$baud = 19200                                               'Baudrate UART

Dim Zeichen As Byte                                         'UART-Empfang
Dim Z As Byte                                               'Timerüberlaufzähler

Rot Alias Portd.7                                           'Namen für LED-Beine
Gruen Alias Portc.3
Config Rot = Output                                         'Ausgänge
Config Gruen = Output
Rot = 1                                                     'LEDs erstmal an
Gruen = 1

'Phasnekorrekter 8-Bit-PWM, PWM-Frequenz=245Hz
Config Timer1 = Pwm , Prescale = 64 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Pwm1a = 200
Pwm1b = 100

Do                                                          'Hauptschleife Begin
   'erstes Teilprogramm - UART Empfang und auswerten
   If Ischarwaiting() = 1 Then                              'Wenn Zeichen Empfangen
      Zeichen = Inkey()                                     'dann Zeichen aus Puffer lesen
      If Zeichen = "1" Then                                 'Wenn Zeichen = "1"
         Rot = 1                                            '...
         Print "Led An"
      Elseif Zeichen = "0" Then                             'Wenn Zeichen = "0"
         Rot = 0                                            '...
         Print "Led Aus"
      Elseif Zeichen = "t" Then                             'Wenn Zeichen = "t"
         Toggle Rot                                         '...
         Print "Toggle Led"
      Elseif Zeichen = "?" Then                             'Wenn Zeichen = "?"
         If Rot = 0 Then                                    'Dann wenn Led aus ist...
            Print "Led ist aus"
         Elseif Rot = 1 Then                                'sonst wenn Led an ist...
            Print "Led ist an"
         End If
      Else
         Pwm1b = Zeichen                                    'sonst PWM1B zuweisen
      End If
   End If

   'zweites Teilprogramm - LED durch timer blinken lassen
   If Tifr.tov1 = 1 Then                                    'wenn Timer übergelaufen ist
      Tifr.tov1 = 1                                         'Überlaufflag zurücksetzen
      Incr Z
      If Z = 245 Then                                       'Überläufe zählen (245)
         Z = 0                                              'Zähler zurücksetzen
         Toggle Gruen                                       'LED toggeln
      End If
   End If

Loop                                                        'Hauptschleife Ende
 

Ü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)