-         

Ergebnis 1 bis 7 von 7

Thema: Ich brauche mal (Nach)Hilfe

  1. #1
    Erfahrener Benutzer Roboter Genie Avatar von oderlachs
    Registriert seit
    17.05.2010
    Ort
    Oderberg
    Alter
    67
    Beiträge
    1.118
    Blog-Einträge
    1

    Ich brauche mal (Nach)Hilfe

    Anzeige

    Hallo Freunde und Kenner der Materie !

    Ich habe es selber nicht geglaubt, aber ich bin einfach mit einer "FOR TO" Schleife und einer "IF then" Enscheidung nicht fertig geworden.
    Bevor ich den Source zeige, möchte ich schnell mal die Aufgabenstellung darlegen. Sie ist eigendlich auch aus dem Code ersichtlich.
    Ich benögie für ein Alarmprojekt Zeit/Alarmgeber. Da ich noch einige Attiny13 zu liegen habe, wollte ich diese nutzbringend verwenden.
    Programmieren tue ich diese auf einem Pollinboard, welches über ISP10 Kabel mit dem STK500 verbunden ist. Beim STK muss ich zuviel umstöpseln/verbinden bei den 8pol. Tinys.

    Natürlich bekomme ich den Chip programmiert, aber nicht ganz so wie ich gern möchte. Die Schleifenzählung wird mit IF nicht ausgewertet, die LED (gegen GND geschaltet),die ich an Stelle von Alarmgebern/Leuchten/Sender beim Test benutze, blinkeln hin und her, aber sind nicht wie gewollt ständig an, bis die Entscheidung in der Zeitschleife sie ausschaltet, bzw ausschalten soll.
    Drum hier ein SOS-Ruf meiner seits was habe ich falsch gemacht. Die Fuses sind richtig gesetzt, werde noch Foto anhängen.

    Ich sege schon mal Danke an eventuelle Helfer !!!

    Gerhard

    Code:
    'Alarmgeber mit ATTINY13
    $regfile = "ATtiny13.dat"
    $crystal = 9600000                      'Interner 9,6Mhz Takt
    $hwstack = 10                           ' wert ??
    $swstack = 10                           ' wert ??
    $framesize = 10                         ' wert ??
    
    'Konstanten festlegen
    Const T_ALARM = 3                       ' Zeit in Min.f ür aktive Sirene in                                     ' Deutschland erlaubt: 3 Minuten
    Const MINUTE = 60                       ' 60x 1sec= wait1
    DIM Flag as boolean
    DIM cnt as byte                         ' Zählvariable
    DIM cend as byte                        ' cend = Endzeit Zählschleife
    'Pins konfigurieren
    Config Pinb.0 = Output                  ' Ausgang 433MHz Sender
    
    Config Pinb.1 = Output                  ' Ausgang Schaltstufe Sirene
    
    Config PINB.2 = Output                  ' Ausgang RundumBlitzleuchte
    
    Config PINB.3 = Input                   ' Eingang Alarmsensor
    flag = False
    if PINB.3 
    'Ports setzen
    PINB.0 = 1
    PINB.1 = 1
    PINB.2 = 1
    flag = True
    cend = T_ALARM * MINUTE
    for cnt = 1 to cend step 1
     if cnt > 10 then PINB.0 = 0            'nach 10sec. Sender aus
     wait 1
    next cnt
    end if
    do
    PINB.0 = 0                               ' Funkverbindung weiter aus
    PINB.1 = 0                               ' Sirene aus
    PINB.2 = flag                            ' Rundumblitzer weiter ein
    loop
    Arduinos, STK-500(AVR), EasyPIC-40, PICKIT 3 & MPLABX-IDE , Linux Mint

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    24558
    Alter
    39
    Beiträge
    1.356
    Hallo oderlachs,



    Müßte bei If PINB.3 nicht ..." = 1 then" mit dazu.
    Der Eingang sollte entprellt (in Software oder Hardware?) werden um Fehlalarme zu vermeiden.

    Outputs sollten z.B. als PORTB.1 geschrieben sein. Also alle PINB.0-2 in PORTB ändern, besonders wichtig wenn man sie setzen möchte. B.3 ist okay.

    Wenn die Schleife durch ist, landest Du in der do - loop Schleife - diese ist dann eine Sackgasse.

    Ansonsten landest Du direkt nach dem flag = false setzen doch direkt in der do - loop Schleife - und gibst flag an PinB.2 (-welcher zu PORTb.2 werden sollte) weiter. Und dann bleibst Du auch in der Sackgasse - der Blitzer blitzt also nicht, weil flag = false (=0) ist.

    Das step 1 benötigt man nicht, da automatisch mit +1 addiert wird.
    Das cend kann man vorher berechnen lassen, da es Konstanten sind, die ggf manuel geändert wedren. Dieses cend kann also vor die Hauptschleife, die Du noch richtig einbauen mußt.
    Nimm das do unten weg und setze es eine Zeile vor die If anweisung nach dem flag = false Befehl.

    Das alles sollte zumindest eine Verbesserung bringen, wenn ich das richtig gesehen habe

    Viele Grüße
    Geändert von HeXPloreR (19.02.2013 um 18:56 Uhr)
    "Es ist schwierig, jemanden dazu zu bringen, etwas zu verstehen, wenn er sein Gehalt dafür bekommt, dass er es nicht versteht" [Upton Sinclair] gez-boykott

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von oderlachs
    Registriert seit
    17.05.2010
    Ort
    Oderberg
    Alter
    67
    Beiträge
    1.118
    Blog-Einträge
    1
    Vielen Dank , werde das alles mal berücksichtgen und ändern. Werde mal ganz klein anfangen, habe lange in Bascom nix mehr gemacht, aber ich werde doch wohl solch eine kleine Sache hinbekommen, so hoffe ich jedenfalls.
    Irgendwie ist es auch komisch, nachdem ich das Testboard ausgeschaltet hatte und wieder weiter machen wollte ging gar nix mehr...
    Habe jetzt das USB-ASP als ISP Programmer angeschlossen, nun kann ich wenigstens wieder den Chip und die Fuses auslesen...
    Klicke auf die Grafik für eine größere Ansicht

Name:	fusebit.jpg
Hits:	13
Größe:	100,8 KB
ID:	24585

    Anbei noch die Fuseeinstellungen als Foto.
    Vielen Dank

    Gerhard
    Arduinos, STK-500(AVR), EasyPIC-40, PICKIT 3 & MPLABX-IDE , Linux Mint

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    24558
    Alter
    39
    Beiträge
    1.356
    Ach Gerhard,

    Die Fuses scheinen soweit richtig 9,6MHz ohne Division durch 8.

    Viele Grüße
    Geändert von HeXPloreR (19.02.2013 um 20:13 Uhr)
    "Es ist schwierig, jemanden dazu zu bringen, etwas zu verstehen, wenn er sein Gehalt dafür bekommt, dass er es nicht versteht" [Upton Sinclair] gez-boykott

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von oderlachs
    Registriert seit
    17.05.2010
    Ort
    Oderberg
    Alter
    67
    Beiträge
    1.118
    Blog-Einträge
    1
    Hallo HexPlorer !
    ja die Division habe ich rausgenommen, wollte mal das ganze langsamer machen, ob es dann geht. Ich gebe warscheinlich auf, tippe auf die Chips, mal lassen sie sich per ID auslesen mal nicht. Nicht mal das Ein und Ausschalten eines IO Pins lässt sich noch verwirklichen..irgendwas muss da wirklich spinnen, ich hoffe nicht ich..
    Wenn nicht anders muss ich eben ein paar 2313 opfern, die ja damit total unterforder sind, aber was solls. ich will mich nicht noch Tage für dumm verkaufen lassen.
    ich probiere nochmals weiter, werde das Ergebnis hier mitteilen. Auch werde ich mal die konkreten Spannungen kontrollieren, nicht das sich die Regelung verabschiedet hat, oder vieleicht Spannungsimpulse auf der Gleichspannung sind...

    Gruss und Dank

    Gerhard
    Arduinos, STK-500(AVR), EasyPIC-40, PICKIT 3 & MPLABX-IDE , Linux Mint

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    30.12.2008
    Beiträge
    1.418
    hast du bei den Programmer einstellungen autoverify drin? da wird wenigstens erkannt wenn beim flashen fehler auftreten
    was gibt es noch zu sagen

  7. #7
    Erfahrener Benutzer Roboter Genie Avatar von oderlachs
    Registriert seit
    17.05.2010
    Ort
    Oderberg
    Alter
    67
    Beiträge
    1.118
    Blog-Einträge
    1
    das einzige worüber Fehlermeldungen kommen , ist das Fehlen der eep-Datei ?? Die Programmereinstellungen siehe hier :
    Klicke auf die Grafik für eine größere Ansicht

Name:	progger_opt.jpg
Hits:	8
Größe:	32,8 KB
ID:	24590

    Heute werde ich mal einen 2313 aufstecken und damit versuchen, nicht das mein Pollinboard 'nen Fehler hat.
    Nachtrag : 2313 geht auch nicht, selbes Programm(Bascom) per STK500 den Chip programmiert, hurra es geht.
    Nun ja da muss ich den Fehler im Pollinboard suchen....den Fehler werde ich hier aufzeigen.
    Danke für alle Hilfe
    Gerhard
    Geändert von oderlachs (20.02.2013 um 12:55 Uhr)
    Arduinos, STK-500(AVR), EasyPIC-40, PICKIT 3 & MPLABX-IDE , Linux Mint

Ähnliche Themen

  1. Auf der Suche nach dem Richtigen Befehl brauche Hilfe
    Von becki133 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 10.07.2008, 00:07
  2. Ich brauche hilfe zu cc5x
    Von Pilotzi im Forum PIC Controller
    Antworten: 28
    Letzter Beitrag: 28.11.2007, 14:02
  3. 16F877A und ich brauche Hilfe
    Von crocomo im Forum PIC Controller
    Antworten: 28
    Letzter Beitrag: 27.08.2007, 22:28
  4. brauche mal Hilfe bei Temparatur messen
    Von meky992 im Forum C-Control II
    Antworten: 3
    Letzter Beitrag: 26.01.2006, 17:49
  5. Brauche mal Eure Hilfe-Schrittmotor
    Von Dejuh im Forum Elektronik
    Antworten: 7
    Letzter Beitrag: 24.02.2005, 14:55

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •