Herzlich Willkommen im einzigen (deutschsprachigem) Picaxe-Forum.

Der Ursprung dieses Forum reicht bis in das Jahr 2008 zurück

Foren Suche

  • 1
    2
    3
     

    Egal was ich mache keins Deiner Beispiel-Programme funktioniert bei mir, habe es auch auf Deiner Testplatine mit einem ATTiny44 versucht. Es wird einfach nicht zuverlässig eingeschaltet oder ausgeschaltet, mit etwas Glück funktioniert es manchmal.
     
     



    Das ist leider schade , aber ich weiß ja auch schon ma garnicht wie Du die Fusebits hast , bei mir sind die ja alles andere als Werkseinstellung.
    Wenn ich den Code für 8Mhz (mein standart) schreib , Du aber alles Werkseinstellung hast (1Mhz) , passen die Pausen und das Timing so garnicht.

    Ich denke Du mußt Dich erstmal damit beschäftigen was FuseBits sind , was die machen , wie man die einstellen kann.
    Sonst werden wir sicher nie auf einen Nenner kommen werden :-(


    Windows ist auch für mich ein notwendiges Übel.
    Auch erst ab Win95 wirklich gebrauchsfähig geworden.
    Ich höre öfters das einige mit Windows so ihre liebe Mühe haben.
    Gut , andererseits sehe ich dann , das sie so gar keine Ahnung vom System an sich haben,
    alle Einstellungen noch so wie nach der Installation gelassen haben.
    Windows ist wie alle System nach der Installation so eingestellt , das mind. 8 Millionen Bürger
    mit arbeiten können.
    Is doch klar das so ein System nach erfolgreicher Installation nicht nach jedermanns Wünschen eingestellt ist.
    Hier fängt die Arbeit doch erst an.
    Sicher ist viel Balast und unnötig Kram dabei , aber alles ist abstellbar oder änderbar.
    Ich sach mal so , bis Win7 ist das System wunnebar nach eigenen Wünschen problemlos anpassbar und einstellbar,
    so das man da wunnebar zurecht kommt .
    Auch ein Windows brauch natürlich Pflege, wie ein Auto , Kaffeemaschine , Waschmaschine , ect.
    Wer dies alles strinkt ignoriert ...der muss sich halt mit .... anderen Exoten rumschlagen ;-)

  • Ja super

    abgesehen vom Wermutstropfen daste alles auf Linux gemacht hast schon schöne Sachen.
    Mein Bruder ist Programmierer bei Sony , ich hatte aber dazu weniger Lust habe diverse FiBu Software und Tools an den Mann gebracht.
    Da Gambas ja dem VB ähnelt und Bascom dem VB .... dürfte Dir der Einstieg in den AVR ja doch recht leicht fallen

    Gut , Basic is Basic , kannste eins , kannste auch andere , mussu nur die spezifische Syntax bissel erlernen.
    Dann könn wa ja gespannt sein auf interessante Projekte von Dir

    Du , ich will Dir hier ja keine Richtung vorschreiben oder vorgeben , jeder muss seinen Stil finden.
    Wir backen ja jetzt noch sehr sehr kleine Brötchen .
    Dadurch das ich schon (meiner Meinug nach ) alles mal gebastelt habe was mit Picaxe , Atmel und Basic so geht ,
    habe ich ja doch ein wenig Erfahrung vorraus , gelle .

    Ich denke wir warten ab was Du noch an Projekten vor haben wirst

    Kannst ja bei Zeiten mal auf Youtube, Dich auf meinen Kanal umschauen : BoomBoomMagic2010
    dann siehst einen Auszug was man noch so alles machen kann ;-)

  • Ich glaube , da hast Du einen Gedanken fehler

    Wenn ich zwischen jeder If eine Abfrage nach dem Taster mache ist das weit schneller , als
    wenn ein Timer erst seine Zeit ablaufen muss , seine Reaktion zu einer Aktion ( ein=1) machen , diese von
    einer fremden Schleife erfassen muss.

    Is ja nicht so das die beiden Aktionen synchron laufen , sonder sie müssen sich wie zwei Blinker zufällig mal treffen.
    Während bei einer IF mit Abfrage KANN garnicht anders reagiert werden als SOFORT ein STOP.

    Das is ja wie beim PC .
    Mein ATARI Falcon , läuft heute noch 10x schneller als ein i7.

    Warum ?
    Ein ATARI ist kein Bausteinsystem wie ein PC.
    Da ist ein Teil auf das Andere abgestimmt.
    Man kann ihn nur komplett neu kaufen wenn man es schneller haben will.

    Beim PC läuft die CPU mit Takt ' x ' ,
    die Grafikkarte mit Takt ' y ' ,
    der Speicher mit Takt ' z '

    verschiedene Takte die dann irgendwann 1x synchron ticken.
    Darum , is zu langsam ? Kauf ne schnellere Karte , Speicher , CPU ...
    Sie werden dadurch immer noch nicht synchron , aber die Zeit bis sie synchron laufen is 2% kürzer.

    Aber wir sind ja erst am Fuss des Berges, der Aufstieg is ja noch laaaaang

    Aber sach mal , Du hast mit Gambas schon was gemacht ?
    Ich hatte mir auch mal vor Jahren Ubuntu und Gambas installiert um unseren Stefan mal
    ein bischen auf die Sprünge zu helfen das zu lernen, ...... aber er war leider sehr lernresistent
    und arg talentfrei in Sachen Programmierung :-(
    Gambas is ja die kleine Schwester in Linux zu VB unter Windows ;-)

  • Nungut , ich halt mich dann mal etwas zurück .....

    .... aber .... einen kann ich mir nicht verkneifen :

    WENN du fragst :
    If ein=1 then ...

    dann ist ein ja 1 !
    interessant daste dann noch mal fragst : If ein =1 ...
    und nochmal : If ein=1 ...
    und nochmal : If ein=1 ...
    und nochmal : If ein =1 ...
    und nochmal : If ein =1 ...


    Natürlich geht es hier anfangs noch so üüüüüberhaupt nicht um professionelle ProgrammCodes und suuuper Projekte.
    Ist ja auch schön das man gern alles mal ausprobieren will.
    Aber man sollte sich dennoch am Anfang immer fragen , ob man die oder die Funktion wirklich brauch ?
    Ich mein , der AVR hat noch weit mehr drauf , so gesehen ;-)
    Aber gleich mit Raketen auf Spatzen schiessen ??

    Man läuft da Gefahr sich einen Stil anzugewöhnen , der es einem bei wirklich schweren Sachen arg problematisch macht.


    Bestes Beispiel ist :
    Damals mit dem ATARI programmieren.
    Da mußte man mit 1-4MB und 10 MB Festplatte Sachen realisieren wo man heute sagt : 1GB ? 2GB ?
    Kein Problem , packen wa ne Schippe mehr drauf .


    Wenn der Code jetzt bei Dir läuft - ok.
    Ob der jetzt so optimal ist , ist eine andere Sache .
    Hauptsache du hast den Umgang mit dem AVR Stück für Stück jetzt ein bischen drauf.




    Zitat von Naubaddi im Beitrag #47
    der MF1 ist aus Resten gebaut und das waren alles Reste die in der Kramkiste so rumlagen

    Da hat wohl jeder seine eigene Kramkiste aus die er schöpft


    (.... und das war nur 1 Seite ... )

  • Wenn Du mit TIMER arbeitest , kommt es ja extrem auf das Timing an.

    Da da die Pausen und das Zusammenspiel genau passen müssen , immerhin laufen 2 Aktionen unabhängig von einander , mal eben ein Beispiel mit TIMER und Mega8 :

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
     

    $regfile = "m8def.dat"
    $crystal = 8000000
    $hwstack = 16
    $swstack = 16
    $framesize = 32
     
    config portb.0 = output
    config portb.1 = output
    config portb.2 = output
    config pinc.3 = input
    config pinc.4 = input
     

    ' TIMER Zeit auf 200ms eingestellt
    Config Timer1 = Timer, Prescale = 64
     

     
    LED1 alias Portb.0
    LED2 alias Portb.1
    LED3 alias Portb.2
     
    Taster1 alias pinc.3
     

     
    dim Check as byte
    dim w as byte
    Const Timer1_Preload = 40536
     

    Enable Timer1
    Timer1 = Timer1_Preload
    On Timer1 Isr_Timer1
    Enable Interrupts
     

    Do
     

     
    if check=1 then
    toggle LED1:waitms 100
    toggle LED2:waitms 100
    toggle LED3:waitms 100
    else
    LED1=0
    LED2=0
    LED3=0
    endif
     
    loop
    end
     

     

    Isr_Timer1:
    Timer1 = Timer1_Preload
     
    if Taster1=1 then
    waitms 100
    if check=0 then
    check=1
    else
    check=0
    endif
    endif
     
    Return
     

     



    Kann man machen ..... MACHT man aber nicht - nicht bei sowas.

    Da hier der TIMER1 nun (unnötig) beansprucht wird , steht dieser für andere Zwecke z.B nicht mehr zur Verfügung.
    Das kann IR , Servo , LCD ,Tastatur , I²C,SPI, weiß der Geier noch alles sein .
    Man hat noch Timer0 und Timer2 , aber dieser Timer1 ist ein 16Bit Timer und ziemlich wichtig.

  • Is schon gewaltig daste für Dein MF1 3 Stk Picaxe nehmen mußt , das könnte nen mega8 im Standgas ...
    aber daste jetzt nen Timer nehmen willst .... chuuih , na da bin ich mal gespannt waste da so zusammen bastelst

  • Also so wie das jetzt hast ist schon ............ mutig, aber jetzt auch noch mit TIMER ???

    Hättest auch selbst drauf kommen können , hab das mal eben mit nem Mega8 getestet , ausnahmsweise ...
    der Taster war nicht entprellt - und schon läufst mit dem Nachbarn ( sag ja , kleiner Gedankenfehler)


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
     

    $regfile = "m8def.dat"
    $crystal = 8000000
    $hwstack = 16
    $swstack = 16
    $framesize = 32
     
    config portb.0 = output
    config portb.1 = output
    config portb.2 = output
    config pinc.3 = input
    config pinc.4 = input
     

    LED1 alias Portb.0
    LED2 alias Portb.1
    LED3 alias Portb.2
     
    Taster1 alias pinc.3
     

     
    dim Check as byte
    dim w as byte
     

     
    Main:
     
    If Taster1=1 then
    waitms 100
    do:loop until Taster1=0
    check=1
    endif
     

     
    if check=1 then
     
    toggle LED1
     
    for w=1 to 10
    if Taster1=1 then
    check=0
    LED1=0
    LED2=0
    LED3=0
    do:loop until Taster1=0
    goto main
    endif
    waitms 10
    next w
     

    toggle LED2
     
    for w=1 to 20
    if Taster1=1 then
    check=0
    LED1=0
    LED2=0
    LED3=0
    do:loop until Taster1=0
    goto main
    endif
    waitms 10
    next w
     

     
    toggle LED3
     
    for w=1 to 30
    if Taster1=1 then
    check=0
    LED1=0
    LED2=0
    LED3=0
    do:loop until Taster1=0
    goto main
    endif
    waitms 10
    next w
     

    endif
     
    goto Main
    end
     
     

  • Ich bin ja seit 1981 Programmierer.

    Ist aber echt nett das Du mir erklärst wie ich so ein Programm aufbauen muss , danke


    Durch den Befehl Gosub Taster_abfrage hast du dein Programm um 10% verlangsammt !
    Ist bei dem Projekt nicht wild .......wirst Du ggf. mal später selber feststellen das das ne ganz ordentliche Bremse ist.
    Aber .... ich programmiere ja noch nicht so lang

  • soll ich mal ganz ehrlich sein ?


    Für diesen Popelkram hol ich noch nicht mal nen Board hervor .

    Ich mach das alles was ich bisher geschrieben habe an Code lediglich aus dem Kopf , rein imaginär !
    Natürlich kann es sein , da ich sowas schon über 5000x gemacht habe das ich aus Flüchtigkeit vielleicht etwas übersehen habe ....
    kann ich mir eigentlich nicht vorstellen ...

    aber ich sach mal so .... ein bischen mitdenken , testen , üben , probieren .... ich geb ja nur die Richtung vor , keine Komplettlösungen , gelle
    wie heißt es doch so schön : learning by doing

    nur wenns gar nicht mehr weiter geht , dann spring ich wieder ein.

  • Mal so aus Spaß , .... bei der Picaxe sieht des 1:1 genauso aus :


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     


    #picaxe 08m2
     

    symbol LED1=b.0
    symbol LED2=b.1
    symbol LED3=b.2
    symbol Taster1=pinb.3

     

    symbol check=b0
    symbol w=b1
     

    Main:

    If Taster1=1 then
    pause 50
    do:loop until Taster1=0
    check=1
    endif

     

    if check=1 then

    toggle LED1

    for w=1 to 10
    if Taster1=1 then
    check=0
    low LED1
    low LED2
    low LED3
    goto main
    endif
    pause 10
    next w

     
    toggle LED2

    for w=1 to 20
    if Taster1=1 then
    check=0
    low LED1
    low LED2
    low LED3
    goto main
    endif
    pause 10
    next w

     

    toggle LED3

    for w=1 to 30
    if Taster1=1 then
    check=0
    low LED1
    low LED2
    low LED3
    goto main
    endif
    pause 10
    next w

     
    endif

    goto Main
     

     




    Ich wüßte nicht wozu man da Multitasking bräuchte ??

  • Neues Picaxe-BoardDatum23.12.2019 13:08
    Foren-Beitrag von BoomBoomMagic im Thema Neues Picaxe-Board

    Wenn der Herr Naubaddi sich denn auch mal langsam dazu äußern könnte ??

  • Ok , hier mal der Code :



    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
     

     
    $regfile = "attiny85.dat"
    $crystal = 1000000
    $hwstack = 16
    $swstack = 16
    $framesize = 32
     
    config portb.0 = output
    config portb.1 = output
    config portb.2 = output
    config pinb.3 = input
    config pinb.4 = input
     

    LED1 alias Portb.0
    LED2 alias Portb.1
    LED3 alias Portb.2
     
    Taster1 alias pinb.3
     

     
    dim Check as byte
    dim w as byte
     

     
    Main:
     
    If Taster1=1 then
    waitms 50
    check=1
    endif
     

     
    if check=1 then
     
    toggle LED1
     
    for w=1 to 10
    if Taster1=1 then
    check=0
    LED1=0
    LED2=0
    LED3=0
    goto main
    endif
    waitms 10
    next w
     

    toggle LED2
     
    for w=1 to 20
    if Taster1=1 then
    check=0
    LED1=0
    LED2=0
    LED3=0
    goto main
    endif
    waitms 10
    next w
     

     
    toggle LED3
     
    for w=1 to 30
    if Taster1=1 then
    check=0
    LED1=0
    LED2=0
    LED3=0
    goto main
    endif
    waitms 10
    next w
     

    endif
     
    goto Main
    end
     

     





    ALLE Variablen sind bei Start immer = 0

    Insofern ist check auch = 0

    Sobald den Taster drückst wird check auf 1 gesetzt.
    Die nächste IF Anweisung sieht das check=1 ist und wird ausgeführt.

    In dieser Anweisung werden nun die LED's an oder aus geschaltet.
    Wir nutzen die Pause um die Abfrage nach dem Taster zu machen.
    Wir halten die Pause sehr klein im Zusammenhang mit einer FOR NEXT Schleife.
    Das stört weder den Ablauf und reicht zum reagieren auf den Taster.

    Wird während der IF Anweisung der Taster gedrückt , wird check auf 0 gesetzt , die LED's
    alle ausgemacht und wieder nach MAIN gesprungen - das Spiel beginnt von vorn.

  • Ok.

    Du hast da 3 LED die ihren Status ändern.(An - Aus - An - Aus ... )

    Jetzt soll nen Taster diesen Ablauf aktivieren ODER wenn's bereist läuft wieder de-aktivieren - richtig ?

  • Neues Picaxe-BoardDatum23.12.2019 11:54
    Foren-Beitrag von BoomBoomMagic im Thema Neues Picaxe-Board

    Hallo Kabelratte ,

    ja das ist ja sehr schön

    Wenn unser Naubaddi dann sich auch zu äußern würde , kann ich die Fertigung starten lassen.

    Am liebsten wäre mir Paypal : uwe68.zierath@web.de

    Warum ?


    Die Chinesen werden auch per Paypal bezahlt und da ist es dann einfacher das Geld lediglich weiter zuleiten,
    als erst auf Konto , dann auf Paypal , dann weiter ...

  • Also , grundsätzlich : Es gibt kein Multitasking !


    Weder am PC , noch an der Picaxe.


    Es werden lediglich die Task schrittweise nacheinander (sehr schnell ) abgearbeitet.
    Bei der Picaxe erweckt es den Eindruck , als würde dieser Multitask können.
    Zudem lassen die Befehle : Start1 ...Start2...Start3 .....
    das auch noch sehr stark annehmen.
    Haben die von Education auch sehr schön umgesetzt.Besonders einfach für Anfänger anzuwenden.


    Der AVR hat (leider) kein Multitasking .

    Beim AVR gibt es eben verschiedene Timer und man setzt hier mehr auf Hirnschmalz.
    ( Wir sind ja jetzt auch eine andere Liga )


    Da Deine Codes doch .... ähm ... ziemlich ... eigenwillig sind ,

    Würde ich gern mal mit Deinen eigenen Worten hören , WAS , WANN , WIE da so passieren soll ??

  • Ich hät ja gesagt , wie wäre es mal mit dem WS2803 ?
    Aber , ich glaube das ist noch etwas früh

  • Spannung vom Netzteil macht Probleme?Datum22.12.2019 21:52

    Mal ganz ehrlich ?

    Hab auch so ein nettes Spielzeug , abgeblich bis 30V und 5A - regelbar .

    Kannst sagen waste willst , aber so ein schönes kleines Schinacken Schaltnetzteil 5V/3A ist noch das beste was geht - meine Meinung.

  • Ja super gemacht ...

    und hier fürs Auge damit sich die Leute etwas drunter vorstellen können

  • <I:-)=Datum22.12.2019 16:42
    Foren-Beitrag von BoomBoomMagic im Thema <I:-)=

    Ah .... Joe mein Früchtchen ... ;-)

    Auch Dir wünsche ich schöne und besinnliche Weihnachten mein Freund.
    Ich freu mich schon auf baldige neue Projete von Dir :-)

  • Neues Picaxe-BoardDatum22.12.2019 16:24
    Foren-Beitrag von BoomBoomMagic im Thema Neues Picaxe-Board

    Ich habe gerade mal ge-checked .....

    ich kann das Board noch mal fertigen lassen und wäre ca. 1. Januar Woche da.
    Das nackte Board incl. Porto würde dann 13,75 € kosten.
    Wenn Naubaddi und Kabelratte mitmachen , würde ich auch nochmal eins nehmen .

    Bitte kurzfristig bestätigen .

Inhalte des Mitglieds BoomBoomMagic
Beiträge: 541
Ort: Bielefeld
Geschlecht: männlich
Picaxe Editor 5.5.5 Download
Update auf Picaxe Editor 5.5.6 Download
Picaxe Editor 6.x.x.x Download
Manual1.pdf        -      Grundwissen Download
Manual2.pdf        -      Befehle Download
Manual3.pdf        -      Beispiele Download


Press [Backspace] for back to Menu


Counter
Xobor Forum Software ©Xobor.de | Forum erstellen
Datenschutz