Herzlich Willkommen im einzigen (deutschsprachigem) Picaxe-Forum.

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

Foren Suche

  • Bestes Beispiel der Attiny :




    Da ist es z.B. wichtig , das Divide clock by 8 auf OFF steht ==> Frequenze 8 Mhz : 8 = 1Mhz Systemtakt
    Bei Dir nicht der Fall , darum kannst alle Attiny erstmal nur mit 1 Mhz programmieren ==> $crystal = 1000000
    Dann das Clock output disable. Da wird immer der interne Takt an einem Pin ausgegeben - unnötig, brauch man nicht
    Debug Wire , brauch man auch nicht am Pin.

    Das ist immer das erste was ich prüfe ob alles richtig eingestellt ist , was mir auch zugleich sagt , das ich Verbindung habe und der Chip funktioniert.

  • Das sind ja viele schöne Bilder , ... aber leider kann ich nicht erkennen wie die FuseBits eingestellt




    So hätte ich das gern gehabt.

    Man sieht schön das es der Mega8 ist.
    Watchdog auf 2.7V
    8 Mhz Takteinstellung.
    SPI enable.
    Reset aktiv.

  • Tja, .... das ist wohl in diesem Linux sehr sehr kompliziert :-(

    In Bascom is das ja schon fast ein Kinderspiel ;-)
    Da ist die Übersicht auch wesentlich besser.

    Ich sach mal so .... wenn ich Dir einen Code schreibe , setz ich (wie schon bereits zig mal erwähnt) , im Code den Satz der die Fusebits passend einstellt.

    Im Grunde brauchst du eh nur 2 Einstellungen :


    1. den jeweiligen Chip der NEU benutzt wird , 1x auf 8Mhz stellen und alle Ports frei geben
    warum soll man nur die halbe Leistung benutzen wenn ich den Chip ganz bezahlt habe , dann kann ich ne Picaxe nehmen

    2. mal einen Chip auf extern Quarz ( 16 Mhz oder 20Mhz ) stellen , was aber eher bei den Atmega 32 und Atmega644 vorkommt
    oder beim Attiny 2313 wenn ich absolut exakt Frequenzen messen will

    Wenn man sich mal doch wirklich vertan hat bei den FuseBits , weil ... ext. Clock , ext. RC Clock , ext. High , ext. Low, int. Clock ,int. RC Clock ,usw ..usw....usw...
    sollte man immer einen 1Mhz Oszillatorquarz zur Hand haben , dann kann mit diesem an Xtal1 den Chip wieder "zurück holen" und auf standart einstellen.
    Geht auch dies nicht mehr , gehts nur noch mit einem STK500 Board , was aber um/über 100€ kost.
    Im Zweifelsfall doch lieber die Finger von lassen :-(

  • Sieht sehr schön aus

  • Du hast ja Recht.
    Um zu testen ob man es verstanden hat und /oder Fehler sich versteckt haben , macht man erst extrem simple Sache.
    Da bietet sich so eine Blink-Blinki Sache natürlich an.

    Auch möchte man sicherlich ein paar Funktionen testen.
    Nur , ... dann sollte man sich ggf. auch sinnvolle Tests ausdenken.

    Ich könnte das derzeitge "Testprogramm" auch mit Proceduren schreiben oder mit Gosub .....
    es macht aber keinen Sinn , als Test noch weniger.

    Natürlich sollte man so wenig wie möglich mit GOTO arbeiten , das kann den Code oftmals sehr unübersichtlich machen.
    Aber man muss halt abwägen für welches Ziel ( egal wie simpel die Funktion ist ), welcher Befehl und Struktur am geeignetesten ist ?!
    Da immer pauschal zu sagen : neee, nur auslagern (Proceduren) is auch nicht immer die beste Idee.


    Mit GOTO kann ich eine aktuelle Abarbeitung stoppen und anderweitig verzweigen lassen.
    Mit Proceduren oder Gosub unterbreche ich nur den aktuellen Vorgang um ihn später wieder aufzunehmen.
    Mit Timer kann ich zwar etwas aktuelles beeinflussen , habe aber da das Timing problem das es selten zeitnah ist.

  • Neues Picaxe-BoardDatum25.12.2019 13:59
    Foren-Beitrag von BoomBoomMagic im Thema Neues Picaxe-Board

    Ok , habe das noch hinbekommen , wird noch eins nachgeschoben.

    Darf ich dann bitte um entsprechende Zahlungen bitten .....

  • Neues Picaxe-BoardDatum25.12.2019 12:33
    Foren-Beitrag von BoomBoomMagic im Thema Neues Picaxe-Board

    Morgen Naubaddi ,

    naja, wir diskutieren bzw. warten seit 3 Tagen auf Deine Bestätigung.


    Da ich heut morgen erst bestellt habe , is vielleicht noch eins nachschiebbar ...

  • Neues Picaxe-BoardDatum25.12.2019 10:41
    Foren-Beitrag von BoomBoomMagic im Thema Neues Picaxe-Board

    Prima Kabelratte.
    Ich hab die Boards jetzt für 36 € zusammen bestellt , ..... gib mir einfach 15€ per Paypal ( uwe68.zierath@web.de ).
    Sollten dann ca. 01./02. Januar ankommen.

    Deine Adresse natürlich nur per PN ;-)

  • Neues Picaxe-BoardDatum25.12.2019 00:14
    Foren-Beitrag von BoomBoomMagic im Thema Neues Picaxe-Board

    Da Naubaddi sich nicht zu äußerst , denke ich das er so ein Board nicht brauch.
    Dann müssen Kabelratte und ich das eben alleine bestellen .
    Was sagst Du Kabelratte dazu ?

  • Hallo Naubaddi,

    ob Dein Sarkasmus jetzt angebracht war ... ?

    Ich arbeite hauptsächlich mit dem Atmega8 und 8Mhz .
    Du stehst mehr auf die 8 Pin und den Attiny44 - alle samt mit lediglich 1MHZ ( bedingt weil Du Dich noch nicht mit den Fusebits auskennst )

    Ich dachte ja erst das Du auf Grund Deiner Erfahrung ,in der Lage bist den Code eines Atmega8 mit 8Mhz selber in einen lauffähigen Code eines Attiny mit nur 1Mhz umzusetzen ?
    Wohl falsch gedacht , man irrt nie aus ...


    Alle Codes die ich rausgebe , sind von mir vorher geprüft , probiert und 100% ok.
    (Sonst macht des auch wenig Sinn Codes rauszugeben )
    Wenn es dennoch bei anderen Usern mal nicht klappt ist der "Fehler" immer bei den Usern zu finden.

    Das mit dem TIMER hätte perfekt bei Dir geklappt wenn nicht Birnen mit Tomaten verglichen hättest.

    Aber , Du hast ja jetzt eine lauffähige Version entwickelt und somit geht die Reise ja wohl weiter

    Atmega8 und TIMER Version

  • 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 ??

Inhalte des Mitglieds BoomBoomMagic
Beiträge: 553
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