Erledigt Wie mache ich das das ein bestimmter LCD TEXT angezeigt wird

lcd text

Hallo Tenor und Dino Und Forum Bastler

So habe mich mal an den Code Propiert leider komm ich nul komma null weiter. habe versucht aus code von internet
schalu zu werden....
ach schaut euch das an
Code:
$regfile "ATtiny2313.dat"
$crystal = 8000000
$hwstack = 32
$swstack = 10
$framesize = 40

' ===== Ports initialisieren ======
Config Portb.6 = Output
Led_30 Alias Portb.6

Config Portb.0 = Output                                     ' PB0 --- LED1 (Ausgang)
Led_10 Alias Portb.0

Config Portb.1 = Output                                     ' PB1 --- LED2 (Ausgang)
Led_20 Alias Portb.1

Config Pinb.2 = Input                                       ' PB2 --- Taster1 (Eingang)
Taster1 Alias Pinb.2
Portb.2 = 0

Config Pinb.3 = Input                                       ' PB3 --- Taster2 (Eingang)
Taster2 Alias Pinb.3
Portb.3 = 0



' ===== LCD initialisieren =====
Lcd_db4 Alias Portd.2
Lcd_db5 Alias Portd.3
Lcd_db6 Alias Portd.4
Lcd_db7 Alias Portd.5
Lcd_rs Alias Portb.4
Lcd_e Alias Portb.5
'LCD 4-Bit Modus
Config Lcdpin = Pin , Db4 = Lcd_db4 , Db5 = Lcd_db5 , Db6 = Lcd_db6 , Db7 = Lcd_db7 , E = Lcd_e , Rs = Lcd_rs
Config Lcdbus = 4
'-----------------------------
'     const
'-----------------------------
'-----------------------------
'  deklarationen
'-----------------------------
Declare Sub An_led
Declare Sub Led1
Declare Sub Init
'-----------------------------
'   variablen
'-----------------------------
Dim Lcd_anzeige1 As Byte
Dim Lcd_anzeige2 As Byte
'-----------------------------
'     MAIN
'-----------------------------
Call Init
Call Led1
Lcd_anzeige1 = 1
Lcd_anzeige2 = 2
Call An_led
Lcd_anzeige1 = 3

'-----------------------------
'Hauptschleife
'-----------------------------
Do
 If Taster1 = 1 Then Gosub Led1
 Debounce Taster2 , 1 , An_led , Sub
Loop

Cls
Locate 1 , 1
Select Case Lcd_anzeige1
    Case 1 : Lcd "led 10 Blinkt"
    Case 2 : Lcd "LED 20 AN"
    Case 3 : Lcd "led aus"
End Select
Cls
Locate 1 , 1
Select Case Lcd_anzeige2
    Case 1 : Lcd "BLINKT"
    Case 2 : Lcd "An Aus An"
    Case 3 : Lcd "LED 20 Aus"
End Select

Sub Led1

Lcd_anzeige2 = 1
Waitms 200
Led_10 = 0
Waitms 200
Led_10 = 1
Waitms 200
Led_10 = 0
End Sub

Sub An_led
Lcd_anzeige2 = 2
Led_20 = Not Led_20
Lcd_anzeige1 = 1
Waitms 1
End Sub

Sub Init
 Set Led_30
 Initlcd
 Cursor Off
 Cls
 Locate 1 , 1
 Lcd "TEXT ANZEIGE"
  Locate 2 , 1
 Lcd "dauer & blink"
 Wait 1
End Sub
Return

Wie was oder wieso geht das nicht......

Daher bitte Um Hilfe
Mit freundtlichen Grüssen
Thorsten Sch.
 
Du nutzt den select case 2 mal, die werden sich wohl gegenseitig immer wieder überschreiben,daher wird dann alles flackern, oder wie ist das Fehlerbild?

Ich dachte mir eigentlich das ist eine alternative zum platzieren der LCD befehlen überall verstreut im Code, aber so bringt das nichts.
Setz entweder die Variable Anzeige mit nur einem select Case, oder Versuch es auf einem anderen Weg.

Ich hab heute nen 12 Stunden Tag hinter mir, da wird das nichts mehr mit genau hinsehen....

Eigentlich kann das nicht so schwer sein, du musst dir nur überlegen wann was angezeigt werden soll und wie dir Lotta mal den Tipp gegeben hat! zeichne mal als Flussdiagramm auf, dann wird das auch einfacher.

Es kann halt immer nur eine Sache angezeigt werden und wenn du trotzdem 2 mal den Befehl zum schreiben gibts, dann ändert halt das LCD zig mal pro sekunde den Text und man sieht nix mehr
 
Es ist bereits falsch, in jedem Durchlauf der Hauptschleife etwas schreiben zu lassen. Wann soll ein (neuer) Text geschrieben werden? Wenn ein anderer Text geschrieben werden soll. Wo wird entschieden, daß ein anderer Text geschrieben werden soll? In den Subroutinen, die die Taster anspringen lassen.

Ob man jetzt den Text in der Subroutine selbst schreiben läßt, oder diese eher schmal halten will (und somit dort nur eine Variable/ein Merker/ein Flag setzt/verändert, welche/n man dann in der Hauptschleife auswertet), ist erstmal egal. Aber es muß eben nur dann eine LCD-Ausgabe erfolgen, wenn der zu zeigende Text sich geändert hat.

Das hätte man in einem Flußdiagramm/Programmablaufplan wunderbar gesehen...:rolleyes:
 
Leute, warum glaubt Ihr das die Leute in dem Ledforum wo er sich normal herumtreibt, kaum mehr eine Antwort geben.

Es nützt nichts, er kann nichts dafür, aber er sollte sich ein anderes Hobby suchen.

Irgendeinen Code aus dem Netz zu fischen, nicht zu verstehen und dann die Community zu beschäftigen führt zu nichts.

Alleine die Hauptschleife in dem Code sagt doch alles aus.
Und das die Fallententscheidung nie eintritt.....usw.

MfG
 
lcd text

Hallo Caargo

vielen dan für die blumen oder den netten text den du geschrieben hast, wie ich hier sehe hast du auch noch nicht so viele beiträge oder?
aber egal ich werde dir mal was schreiben mein guter......
1.) hab ich mir ein buch gekauft für Avr und 2.) ich werde bei mein HOBBY Bleiben..... cool oder?!......

Jeder fängt in seiner Beruflichen oder hobby Arbeiten KLEIN an oder? so da ich aber schon so den standart CODE hinbekommen habe werde ich das weiter versuchen ende....

Verleicht komm ich heute weiter mit meinen code.

VIELEN dnka auch an die anderen die mir bis jetzt geholfen haben DANKE.....

Mit Freundtlichen Grüßen
Thorsten Sch.
 
Naja, was Du tust oder nicht tust ist mir ja ziemlich egal.

Aber Du werkelst schon einige Zeit mit µC herum, und dann fragst Du erst diese Woche so mein ich,
in dem andere Forum welche Programmiersprache denn Dein Code sei?

Und zu meiner Beitragsanzahl: Mach Dir um mich keine Sorgen.

MfG

Edit: Habs gefunden >>> http://www.ledstyles.de/fpost335390.html#post335390
 
lcd text

Hi das ist doch egal wo ich frage? oder muss ich irgendjemand fragen und um erlaubniss bitten????? nein das forum ist dafür da um TIPPS
TRICKS zu bekommen und den rest selber HINZUBEKOMMEN das weis ich und bestimmt auch andere.....
und zu den anderen forum wegen des buches 1.) ist das bischen läger her 2.) hab ich jemand gefragt der mir das buch verkaufen wollte so ich
will 100% sicher gehen und das richtige buch kaufen und nicht ins leere greifen denn das zurück schicken kostet auch geld oder?

so nu mal gut da braust ja nicht weiter schreiben oder wie auch immer.....

so erst mal danke dino und tenor

werde mich verleicht noch mal melden wie ich weiter gekommen bin....

Mit Freundtlichen Grüßen
Thorsten Sch.


PS: ich verstecke mich nicht in anderen Forums oder so, bin auch noch woanders kannst ja suchen........

Bye Bye
 
Ich hab Dir schon weiter oben gesagt, es geht mir nicht primär um Dich, sondern ich will nur den anderen Helfern
einen Hinweis geben. Ist ja schließlich Ihre Freizeit.

Hab ich auch schon mehrfach gesagt, aber extra für Dich auch einmal: Ich suche nicht, ich finde.

Zum Abschluß: Schau Dir mal genau Deine Signatur an. Erstaunlich was Du alles gebastelt hast ohne die Programmiersprache zu kennen.

Winke Winke
 
Hallo,

also ich mach nochmal nen Versuch ... :vollkommenauf: ... (Program aus #21)

Teil 1 ...
Code:
$regfile "ATtiny2313.dat"
$crystal = 8000000
$hwstack = 32
$swstack = 10
$framesize = 40

' ===== Ports initialisieren ======
Config Portb.6 = Output
Led_30 Alias Portb.6

Config Portb.0 = Output                                     ' PB0 --- LED1 (Ausgang)
Led_10 Alias Portb.0

Config Portb.1 = Output                                     ' PB1 --- LED2 (Ausgang)
Led_20 Alias Portb.1

Config Pinb.2 = Input                                       ' PB2 --- Taster1 (Eingang)
Taster1 Alias Pinb.2
Portb.2 = 0

Config Pinb.3 = Input                                       ' PB3 --- Taster2 (Eingang)
Taster2 Alias Pinb.3
Portb.3 = 0



' ===== LCD initialisieren =====
Lcd_db4 Alias Portd.2
Lcd_db5 Alias Portd.3
Lcd_db6 Alias Portd.4
Lcd_db7 Alias Portd.5
Lcd_rs Alias Portb.4
Lcd_e Alias Portb.5
'LCD 4-Bit Modus
Config Lcdpin = Pin , Db4 = Lcd_db4 , Db5 = Lcd_db5 , Db6 = Lcd_db6 , Db7 = Lcd_db7 , E = Lcd_e , Rs = Lcd_rs
Config Lcdbus = 4
'-----------------------------
'     const
'-----------------------------
'-----------------------------
'  deklarationen
'-----------------------------
Declare Sub An_led
Declare Sub Led1
Declare Sub Init
'-----------------------------
'   variablen
'-----------------------------
Dim Lcd_anzeige1 As Byte
Dim Lcd_anzeige2 As Byte
das kann man soweit lassen wobei ich den ALIAS-Kram beim LCD weggelassen hätte. Die Pin-Bezeichnungen benötigt man nur an der Stelle und sonst nirgendwo anders im Programm. Ist also eigentlich unnütze Arbeit.


Teil 2 ...
Code:
'-----------------------------
'     MAIN
'-----------------------------
Call Init
Call Led1
Lcd_anzeige1 = 1
Lcd_anzeige2 = 2
Call An_led
Lcd_anzeige1 = 3

'-----------------------------
'Hauptschleife
'-----------------------------
Do
 If Taster1 = 1 Then Gosub Led1
 Debounce Taster2 , 1 , An_led , Sub
Loop
- Call Init ... da hast du den Teil der da vorher stand nur in ne Sub ausgelagert.
danach wird es dann ziemlich wuselig. Viel umgestelle in den Variablen Lcd_anzeige1 und Lcd_anzeige2 aber ohne Wirkung weil ... Teil 3 ...
Code:
Cls
Locate 1 , 1
Select Case Lcd_anzeige1
    Case 1 : Lcd "led 10 Blinkt"
    Case 2 : Lcd "LED 20 AN"
    Case 3 : Lcd "led aus"
End Select
Cls
Locate 1 , 1
Select Case Lcd_anzeige2
    Case 1 : Lcd "BLINKT"
    Case 2 : Lcd "An Aus An"
    Case 3 : Lcd "LED 20 Aus"
End Select
... dieser Teil hinter einer geschlossenen Hauptschleife liegen (soweit auch richtig) aber keinen Sprunglabel oder Sub-Namen oder sonstwas haben über das sie aufgerufen werden könnten. Also tote Programmzeilen die nie benutzt werden.


Teil 4 ...
Code:
Sub Led1
Lcd_anzeige2 = 1
Waitms 200
Led_10 = 0
Waitms 200
Led_10 = 1
Waitms 200
Led_10 = 0
End Sub




Sub An_led
Lcd_anzeige2 = 2
Led_20 = Not Led_20
Lcd_anzeige1 = 1
Waitms 1
End Sub




Sub Init
 Set Led_30
 Initlcd
 Cursor Off
 Cls
 Locate 1 , 1
 Lcd "TEXT ANZEIGE"
  Locate 2 , 1
 Lcd "dauer & blink"
 Wait 1
End Sub
Return
In den SUBs wird auch wieder der Wert der Lcd_anzeige-Variablen hin und hergestellt aber auch ohne Wirkung.

Das sieht alles recht wuselig aus und (sorry) nicht wirklich logisch aufgebaut.
Geh doch das Programm mal im Kopf durch was an welcher Stelle passiert. Mal die auf nem Blatt Papier auf was grade passiert wenn du Probleme damit hast den Ablauf komplett im Kopf durchzugehen oder mal dir wirklich mal nen Programmablaufplan auf. Geh es Schritt für Schritt durch. Im Moment sieht das nach wildem rumprobieren aus wo du eigentlich nur die vorgeschlagenen Programmschnipsel irgendwie einbaust. Um das zum laufen zu bekommen mußt du aber auch verstehen was dieser Schnipsel bewirkt und warum man es so machen kann oder sollte.

Also für mich sieht es im Programm so aus als wenn nach dem Init des LCDs auf der Anzeige trotz Tastendruck nichts mehr passiert.

Und gewöhn dir an die SUBs, Programmteile und einige wichtige Zeilen mit Bemerkungen zu versehen was an der Stelle geschieht und warum du das genau so gemacht hast. Das erleichtert DIR auch das Überschauen des Programmablaufs und ob das so überhaupt funktionieren kann. Bei mir sind etwa 2/3tel des Programms Bemerkungen und Infos.

Gruß
Dino
 
...mal dir wirklich mal nen Programmablaufplan auf...
Den Vorschlag kannste Dir wohl klemmen, Dino. Das hab ich schon die ganze Zeit versucht...

Normalerweise hat man ja dann im PAP sowas stehen wie "Vereinbarung von Variablen und Konstanten"->"Initialisierung der Hardware"->"Hauptschleife".
Alles ordentlich mit Kommentaren gewürzt, damit man selbst, und Helfer durchsehen, was wie geschehen soll...
Ob diese Blöcke letzendlich dort implementiert werden, oder ob man das in Subs auslagert, ist egal.
In der Hauptschleife stehen dann die Punkte, die dort abgearbeitet werden sollen (Oldmax würde jetzt wieder "EVA" erklären). Diese verweisen dann im allgemeinen an Subroutinen - wobei eben auch "debounce" eine Subroutine aufruft (aufrufen kann).

Erst wenn dieses Konstrukt steht, kann man beginnen, die einzelnen Blöcke zu implementieren. Also erstmal nur die leeren Methodenrümpfe mit 'nem Kommentar, was die Methode machen soll. Dann kannst Du nämlich das Konstrukt selbst schon zur Diskussion stellen, und korrigieren - und wenns soweit paßt, die Methoden ergänzen.

Meist kommt man mit'nem Blatt Papier für den Plan aus (je nach Komplexität und Erfahrung auch im Kopf), aber wenn man das im Forum diskutieren lassen will... Ich greife da ganz gern auf den PAP Designer zurück...

Im PAP hätte man nämlich sofort gesehen, daß die von Dino angesprochenen Teile toter Code sind - ich hatte da das loop übersehen.
 
LCD-Text Funkbeücke I2C-Bus Touch usw

Hallo,

Habe im Projekt „Funkbrücke“ (Zentrale.bas), alle deine Probleme gelöst.
Ob mit Taster oder Touch- Panel können bis zu 255 Anzeige-Modi für LCD angewählt werden.
Alles ohne “flackern“.
Leider war es mich nicht möglich dieses Projekt (.bas) in einem anderem Thread ins Forum zu stellen.

Aber wenn mich jemand schreibt wie dies funktioniert werde ich mein Projekt veröffentlichen.
Bitte Beachten: Mit über 6 jahrzehnten auf den "Buckel" und kaum der der englichen Sprache mächtig.

Mit freundlichen Grüßen
Fred
 
lcd text mein letzter versuch

Hallo liebe Forum Gemeinde und Bastler
ich stell das letzte mal mein proplem hier rein.....
ich habe mir das buch von my-avr geholt sowie Lehrheft LCD programmierung.....
ich habe mal ´mit bascom eigende zeiche nachgemacht sehe code 1

code1
Code:
'LCD Basis mit Selbstdefinierten Zeichen
'LCD an Port D
'
'In: -
'Out: portd2 bis Portd7: LCD
$regfile "m8def.dat"
$crystal = 4000000
'config portd = output
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , _
E = Portd.3 , Rs = Portd.2
Config Lcd = 16 * 2
Cls
Cursor Off

         'Smiley fröhlich
Deflcdchar 0 , 32 , 32 , 17 , 32 , 4 , 17 , 14 , 32         'Smiley Normal
Deflcdchar 1 , 32 , 32 , 17 , 32 , 4 , 32 , 14 , 17         'Smiley Traurig
Cls

Lcd Chr(0)                                                  'Smiley

Lcd "  {001}"                                               'Zeichen 001 (=Smiley Traurig) im String

Do

Locate 1 , 8                                                'abwechelnd
Lcd Chr(0)                                                  'Smiley fröhlich
Wait 1                                                      'und
Locate 1 , 8
Lcd Chr(1)                                                  'traurig
Wait 1

Loop
End
das habe ich verstanden. aber bei meinen code komm ich in buch nochweiter oder mit anderen codes.....
daher nochmal meine bitte an euch könnt ihr mir helfen bitte oder ratschläge geben es währe super
hier mein aktueller propier code2

Code 2
Code:
$regfile "ATtiny2313.dat"
$crystal = 8000000
$hwstack = 32
$swstack = 10
$framesize = 40

' ===== Ports initialisieren ======
Config Portb.6 = Output
Led_30 Alias Portb.6

Config Portb.0 = Output                                     ' PB0 --- LED1 (Ausgang)
Led_10 Alias Portb.0

Config Portb.1 = Output                                     ' PB1 --- LED2 (Ausgang)
Led_20 Alias Portb.1

Config Pinb.2 = Input                                       ' PB2 --- Taster1 (Eingang)
Taster1 Alias Pinb.2
Portb.2 = 0

Config Pinb.3 = Input                                       ' PB3 --- Taster2 (Eingang)
Taster2 Alias Pinb.3
Portb.3 = 0



' ===== LCD initialisieren =====
Lcd_db4 Alias Portd.2
Lcd_db5 Alias Portd.3
Lcd_db6 Alias Portd.4
Lcd_db7 Alias Portd.5
Lcd_rs Alias Portb.4
Lcd_e Alias Portb.5
'LCD 4-Bit Modus
Config Lcdpin = Pin , Db4 = Lcd_db4 , Db5 = Lcd_db5 , Db6 = Lcd_db6 , Db7 = Lcd_db7 , E = Lcd_e , Rs = Lcd_rs
Config Lcdbus = 4
Initlcd
Cursor Off
Cls
Locate 1 , 1
Lcd "TEXT ANZEIGE"
Locate 2 , 1
Lcd "dauer & blink"
Wait 1
'-----------------------------
'     const
'-----------------------------
'-----------------------------
'  deklarationen
'-----------------------------
Declare Sub An_led
Declare Sub Led1
Declare Sub Test
'-----------------------------
'   variablen
'-----------------------------
Dim Lcd_anzeige2 As Byte
'-----------------------------
'     MAIN
'-----------------------------
Call Test
Lcd_anzeige2 = 0
Lcd_anzeige2 = 1
Lcd_anzeige2 = 2
Lcd_anzeige2 = 3
Lcd_anzeige2 = 4
'-----------------------------
'Hauptschleife
'-----------------------------
Do
 If Taster1 = 1 Then Gosub Led1
 Debounce Taster2 , 1 , An_led , Sub
 Select Case Lcd_anzeige2
    Case 1 : Locate 1 , 1
    Lcd "BLINKT-LED1_B"
    Case 2 : Locate 1 , 1
    Lcd "BLINKT-LED1_AUS"
    Case 3 : Locate 2 , 1
    Lcd "LED_20 - AN"
    Case 4 : Locate 2 , 1
    Lcd "LED_20 - AUS"
End Select

Incr B_takt
Loop

Sub Led1
Cls
Locate 1 , 1
Lcd_anzeige2 = 1
Waitms 20
Led_10 = 1
Waitms 20
Led_10 = 0
Waitms 20
Led_10 = 1
Waitms 20
Led_10 = 0
Waitms 20
Led_10 = 1
Waitms 20
Led_10 = 0
Waitms 20
Cls
Locate 1 , 1
Lcd_anzeige2 = 2
End Sub

Sub An_led
Cls
Locate 2 , 1
Lcd_anzeige2 = 3
Led_20 = Not Led_20
Cls
Locate 2 , 1
Lcd_anzeige2 = 4
Waitms 1
End Sub

Sub Test
Led_10 = 1 : Led_20 = 1
Waitms 1
Led_10 = 0 : Led_20 = 0
Waitms 1
Cls
Locate 1 , 1
Lcd "test"
Locate 2 , 1
Lcd "test ende"
End Sub
Return

Mit Freundtlichen Grüßen
Thorsten Sch.

Bitte um Rat BITTE BITTE
 
Lcd text

Hallo Thorsten,

habe es geschafft im Thread Funk RFM12 meine bescheidene Programmierung einzustellen.
In der Bas Zentrale findest Du die Gosub [Tasten] und Gosub [Anzeige]. Dies sollte Dich doch weiter Helfen können.
Für Dein Projekt natürlich ohne I²C anfragen. Hast ja Taster und LCD direkt am Controller.

Mit freundlichen Grüßen
Fred
 
lcd text

ja alles am controller angeschlosen..... und wo ist nu dein projekt?

Gruss Thorsten Sch.
 
Hallo Thorsten,
was passiert den wenn du das so kompilierst und dann laufen lässt? Wie sieht dein Fehlerbild aus?

Code:
'-----------------------------
'     MAIN
'-----------------------------
Call Test
Lcd_anzeige2 = 0
Lcd_anzeige2 = 1
Lcd_anzeige2 = 2
Lcd_anzeige2 = 3
Lcd_anzeige2 = 4

Hier führst du zunächst das Unterprogramm Test aus und weist dann der LCD_anzeige2 in einem Zyklus 4 verschiedene Werte zu, hier wird dann nur der letzt Aktiv sein, also 4!
Beim springen ins Unterprogramm test wird dann nach 2ms einmal kurz etwas aufs Display geschrieben:
Code:
Cls
Locate 1 , 1
Lcd "test"
Locate 2 , 1
Lcd "test ende"

Das noch im gleich Zyklus vom Hauptprogramm wieder überschrieben wird!
Case 4 wird dann ausgeführt..

Dann
Code:
Incr B_takt
die Variable hast du glaube ich nicht einmal deklariert.

Du musst dir halt genau überlegen wann du was machen willst, daher noch einmal. Zeichne dir ein Flußdiagramm auf ;)


Gruß
Tenor
 
Dann versuch ich's auch nochmal...
...aber bei meinen code komm ich in buch nochweiter oder mit anderen codes...
Der Sinn dieses Satzes erschließt sich mir schlichtweg nicht.

...daher nochmal meine bitte an euch könnt ihr mir helfen bitte oder ratschläge geben es währe super
hier mein aktueller propier code2...
Dann sag uns Doch bitte mal, was dieser Code konkret machen soll, und was tatsächlich geschieht.

Zeichne Dir und uns auf, was das Programm machen soll, und zeichne auf, was Dein Code so Schritt für Schritt macht. Dann sollte schon mal einiges klarer werden.

Ein paar Tips vorweg:
  • Wenn Du aus der Hauptschleife heraus irgendwelche Subroutinen anspringst, wird das Hauptprogramm solange unterbrochen, bis Du aus der entsprechenden Routine zurückkehrst. Insbesondere bringt es also nichts, da mehrfach die Cursorposition zu verändern, oder Deine "Flag" für die Case Struktur.
  • In der LED1-Sub läßt Du eine LED ziemlich schnell flimmern (25Hz?) und auch nur sehr kurz (140ms)
  • Auch wenn keine Taste betätigt wird, läßt Du bei jedem Hauptschleifendurchlauf einen Text auf's Display schreiben. Das ist unnötig, da sich der Text ja nicht ändert, und es kostet Dein Programm Zeit. Zeit, in der zB ein Tastendruck übersehen werden kann.
  • In der Hauptschleife inkrementierst Du eine nicht dimensionierte und nicht initialisierte Variable (oder hab ich das nur übersehen?). Abgesehen davon, daß das einen Fehler beim compilieren geben sollte, wird diese Variable aber auch nie verwendet

Kann jemand mal was zu den end-Subs sagen? Ich hätte da generell Returns erwartet...
 
lcd text

Hallo liebe Forum gemeinde und bastler

Also es soll einen steuerung sein für mein schriebtisch
-----------------------------------------------------
1.)Licht
2.)RGB fader (eigender controller fertig gekauft)
3.)Ein Kleiner Verstärker (Kopfhörer)
4.) AVR Board (steckboard -Addons Board Pollin)
-----------------------------------------------------

es soll per Taster eingeschaltet werden sowie wiedergabe auf den LCD wiedergeben werden.
beim strom zugeben soll er die Lampen/LED/Realis Testen (einmal Durchgehen) also testen.

So soll es dann sein:
Drücke ich die Taste (Licht) soll im LCD stehen = Licht an, drück ich Nacheinigerzeit die taste wieder, Geht Licht aus und LCD soll Stehen Lampe Aus....
Drücke ich die Taste (RGB) soll im LCD stehen = RGB an, drück ich Nacheinigerzeit die taste wieder, Geht RGB aus und LCD soll Stehen RGB Aus.....

so auch Bei den Anderen Tasten......

Hier mal mein AKTUELLER CODE den ich benutze für mein Schreibtisch:
CODE.1 (schreibtisch)
Code:
'-----------------------------------------------
'Schreibtisch Steuerung
'-----------------------------------------------
$regfile "m32def.dat"
$crystal = 8000000
$hwstack = 32
$swstack = 10
$framesize = 40

Config Porta = Output
Config Portb = Output
Config Portd.7 = Output

Lcd_db4 Alias Portd.4
Lcd_db5 Alias Portd.3
Lcd_db6 Alias Portd.2
Lcd_db7 Alias Portd.1
Lcd_rs Alias Portd.6
Lcd_e Alias Portd.5
Re1 Alias Porta.0                                           'Realis1 Ausgang
Re2 Alias Porta.1                                           'Realis2 Ausgang
Re3 Alias Porta.2                                           'Realis3 Ausgang
Re4 Alias Porta.3                                           'Realis4 Ausgang
Re5 Alias Porta.4                                           'Realis5 POWER ON
La1 Alias Portb.4                                           '
La2 Alias Portb.5
La3 Alias Portb.6
La4 Alias Portb.7
Lcd_hi Alias Portd.7

Config Pinc.4 = Input                                       'Taster1
Portc.4 = 0
Config Pinc.5 = Input                                       'Taster2
Portc.5 = 0
Config Pinc.6 = Input                                       'Taster3
Portc.6 = 0
Config Pinc.7 = Input                                       'Taster4
Portc.7 = 0

Declare Sub Ausgang_1
Declare Sub Ausgang_2
Declare Sub Ausgang_3
Declare Sub Ausgang_4

'4-Bit Modus
Config Lcdpin = Pin , Db4 = Lcd_db4 , Db5 = Lcd_db5 , Db6 = Lcd_db6 , Db7 = Lcd_db7 , E = Lcd_e , Rs = Lcd_rs
Config Lcdbus = 4
Initlcd
Cursor Off
Cls
Locate 1 , 1
Lcd "Schaltpult 01"
Locate 2 , 1
Lcd "Gesteuert.ATmega32"
Waitms 2
Locate 1 , 2
Lcd "LCD Hinterg. An"
Lcd_hi = 1
Waitms 2
Cls
Locate 2 , 2
Lcd "Bitte Warten"
Wait 1
Locate 1 , 4
Lcd "Lampen Test"
La1 = 1
Wait 1
La1 = 0 : La2 = 1
Wait 1
La2 = 0 : La3 = 1
Wait 1
La3 = 0 : La4 = 1
Wait 1
La4 = 0
Locate 2 , 1
Lcd " Lampe 1-4 OK"
Wait 2
Cls
Locate 3 , 1
Lcd "Realis 1-5 Test"
Re1 = 1
Wait 1
Re1 = 0 : Re2 = 1
Wait 1
Re2 = 0 : Re3 = 1
Wait 1
Re3 = 0 : Re4 = 1
Wait 1
Re4 = 0
Wait 1
Locate 4 , 1
Lcd "Realis 1-5 OK"
Wait 2
Cls
Locate 1 , 6
Lcd "SPANNUNG"
Locate 2 , 1
Lcd "Wird Geschaltet 2Min"
Locate 3 , 1
Lcd "LCD - Hinterg.Dauer"
Locate 4 , 4
Lcd "B E R E I T"
Re5 = 1
Wait 3

Dim D As Word

Do
  Debounce Pinc.4 , 0 , Ausgang_1 , Sub                     'RGB
  Debounce Pinc.5 , 0 , Ausgang_2 , Sub                     'VERSTÄRKER
  Debounce Pinc.6 , 0 , Ausgang_3 , Sub                     'LICHT
  Debounce Pinc.7 , 0 , Ausgang_4 , Sub                     '12VOLT/AVR
  If D = 0 Then
  Lcd_hi = 0
  Waitms 2
  Else
  D = D + 1
  End If
Loop


Sub Ausgang_1
 Lcd_hi = 1
 D = 30
 Cls
 Locate 1 , 1
 Lcd "R G B - AN"
 Re1 = Not Re1                                              'Hier PORTB.5 an & aus
 Waitms 1
 La1 = Not La1
 Waitms 1
End Sub

Sub Ausgang_2
Lcd_hi = 1
 D = 30
Cls
Locate 2 , 1
Lcd "Kopf-Verstärker AN"
Re2 = Not Re2                                               'Hier PORTB.5 an & aus
Waitms 1
La2 = Not La2
Waitms 1
End Sub

Sub Ausgang_3
Lcd_hi = 1
 D = 30
Cls
Locate 3 , 1
Lcd " Licht - AN"
Re3 = Not Re3                                               'Hier PORTB.5 an & aus
Waitms 1
La3 = Not La3
Waitms 1
End Sub

Sub Ausgang_4
Lcd_hi = 1
 D = 30
Cls
Locate 4 , 1
Lcd "12Volt - AVR - AN"
Re4 = Not Re4                                               'Hier PORTB.5 an & aus
Waitms 1
La4 = Not La4
Waitms 1
End Sub

Return

so darum habe ich einen kleines programm auf den Sehe Code.2(ATtiny2313) zum testen genommen....

Code.2
Code:
$regfile "ATtiny2313.dat"
$crystal = 8000000
$hwstack = 32
$swstack = 10
$framesize = 40

' ===== Ports initialisieren ======
Config Portb.6 = Output
Led_30 Alias Portb.6

Config Portb.0 = Output                                     ' PB0 --- LED1 (Ausgang)
Led_10 Alias Portb.0

Config Portb.1 = Output                                     ' PB1 --- LED2 (Ausgang)
Led_20 Alias Portb.1

Config Pinb.2 = Input                                       ' PB2 --- Taster1 (Eingang)
Taster1 Alias Pinb.2
Portb.2 = 0

Config Pinb.3 = Input                                       ' PB3 --- Taster2 (Eingang)
Taster2 Alias Pinb.3
Portb.3 = 0



' ===== LCD initialisieren =====
Lcd_db4 Alias Portd.2
Lcd_db5 Alias Portd.3
Lcd_db6 Alias Portd.4
Lcd_db7 Alias Portd.5
Lcd_rs Alias Portb.4
Lcd_e Alias Portb.5
'LCD 4-Bit Modus
Config Lcdpin = Pin , Db4 = Lcd_db4 , Db5 = Lcd_db5 , Db6 = Lcd_db6 , Db7 = Lcd_db7 , E = Lcd_e , Rs = Lcd_rs
Config Lcdbus = 4
Initlcd
Cursor Off
Cls
Locate 1 , 1
Lcd "TEXT ANZEIGE"
Locate 2 , 1
Lcd "dauer & blink"
Wait 1
'-----------------------------
'     const
'-----------------------------
'-----------------------------
'  deklarationen
'-----------------------------
Declare Sub An_led
Declare Sub Led1
Declare Sub Test
'-----------------------------
'   variablen
'-----------------------------
Dim Lcd_anzeige2 As Byte
Dim B_takt As Integer
'-----------------------------
'     MAIN
'-----------------------------
Call Test
Lcd_anzeige2 = 0
Lcd_anzeige2 = 1
Lcd_anzeige2 = 2
Lcd_anzeige2 = 3
Lcd_anzeige2 = 4
'-----------------------------
'Hauptschleife
'-----------------------------
Do
 If Taster1 = 1 Then Gosub Led1
 Debounce Taster2 , 1 , An_led , Sub
 Select Case Lcd_anzeige2
    Case 1 : Locate 1 , 1
    Lcd "BLINKT-LED1_B"
    Case 2 : Locate 1 , 1
    Lcd "BLINKT-LED1_AUS"
    Case 3 : Locate 2 , 1
    Lcd "LED_20 - AN"
    Case 4 : Locate 2 , 1
    Lcd "LED_20 - AUS"
End Select

Incr B_takt
Loop

Sub Led1
Cls
Locate 1 , 1
Lcd_anzeige2 = 1
Waitms 20
Led_10 = 1
Waitms 20
Led_10 = 0
Waitms 20
Led_10 = 1
Waitms 20
Led_10 = 0
Waitms 20
Led_10 = 1
Waitms 20
Led_10 = 0
Waitms 20
Cls
Locate 1 , 1
Lcd_anzeige2 = 2
End Sub

Sub An_led
Cls
Locate 2 , 1
Lcd_anzeige2 = 3
Led_20 = Not Led_20
Cls
Locate 2 , 1
Lcd_anzeige2 = 4
Waitms 1
End Sub

Sub Test
Led_10 = 1 : Led_20 = 1
Waitms 1
Led_10 = 0 : Led_20 = 0
Waitms 1
Cls
Locate 1 , 1
Lcd "test"
Locate 2 , 1
Lcd "test ende"
End Sub
Return

so ich hoffe habe es soweit gut erklärt was ich mache mit den 1.code...........

Mit Freundtlicher Grüßen
Thorsten sch.
 
RFM12 Funkmodul

Hallo,

Na Nu sollte doch unter Thema RFM12 Funkmodul auf Seite 4, als Zip- Anhang zu finden sein.
Muss aber zugeben in diesem Forum habe ich etwas Probleme.
z.B. den Anhang Hochzuladen, hatte ich den Voreingestellen Haken (mit Link Verknüpfen oder so) nicht entfernt. Somit ist mein PC nach ca. 30 Minuten Ladezeit brutal abgestürzt.
Solltest Du nicht weiter kommen dann Kontakt unter fredred@arcor.de aufnehmen.
Finde ich zwar nicht besonders Gut, denn ein Forum sollte alle an Leid und Glück derjenigen
die dieses besuchen, mitfühlen lassen. Wie es ein Pastor formulieren würde.

Bis dann
Fred
 

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