Sida 2 av 2

Postat: 13 mars 2006, 13:59:09
av Tekko
Nu har jag proggat en halvstegsdriver, startar fint på 1ms.

Och en högmoment, startar själv på 2ms, behöver hjälp samt stannar efter några varv på 1ms.

Postat: 14 mars 2006, 23:36:23
av Tekko
Nu vill jga utveckla mitt stepperprogram lite med 2 knappar, en som ökar varvtalet och en som minskar. Någon som kan BASCOM-AVR och vet vad jag ska lätta till för att få de funktioner jag vill ha med knapparna ?

Postat: 14 mars 2006, 23:57:37
av sodjan
Först måste du väl hitta en metod i ditt verktyg för att få en
bättre upplösning än bara hela millisekunder
Antagligen bör du läsa på lite om timers och gå den vägen...

Postat: 15 mars 2006, 08:49:05
av Tekko
Mjo. :?

Postat: 15 mars 2006, 18:42:36
av RDX*
Du kan testa denna koden, jag har inte testat att det fungerar, men du borde få lite hjälp i alla fall.

Kod: Markera allt

$crystal = 3200000
$regfile "2313def.dat"

      Dim Wa As Byte

      Config Pinb.0 = Output
      Config Pinb.1 = Output
      Config Pinb.2 = Input
      Config Pinb.3 = Input
      Config Timer0 = Timer , Prescale = 64
      Wa = 150

Do
      Debounce Pinb.2 , 0 , Snabbare , Sub
      Debounce Pinb.3 , 0 , Langsammare , Sub


      Set Portb.0
      Reset Portb.1
      Gosub Vanta

      Set Portb.1
      Set Portb.0
      Gosub Vanta

      Reset Portb.0
      Set Portb.1
      Gosub Vanta

      Reset Portb.1
      Reset Portb.0
      Gosub Vanta

Loop

Vanta:
   Do

   Loop Until Tcnt0 >= Wa
   'when 10 pulses are count the loop is exited
   'or use the special variable TIMER0
   Timer0 = 0

Return

Snabbare:
    
    If Wa <= 34 Then
      Wa = 5
    Else
      Wa = Wa - 29
    End If
Return

Langsammare:
    End If
    If Wa => 121 Then
      Wa = 150
    Else
      Wa = Wa + 29
    End If
Return
Med koden borde du kunna reglera hastigheten från 3 ms till 0.1 ms i fem steg.

Postat: 15 mars 2006, 22:07:11
av Tekko
RDX, tack för din hjälp :) Dock det finns 2 fel i koden:
Bild

Postat: 15 mars 2006, 22:13:34
av sodjan
Det är väl *1* fel i koden ?

Har du inte ens läst felmeddelanderna innan du postar ? :-)

Intressantare är väl hur det fungerade efter att du fixade felet...

Postat: 15 mars 2006, 22:21:53
av Tekko
Errors cleared :D Får testa imorrn, mår dåligt idag samt att ingenting är kopplat pga städning.

Postat: 15 mars 2006, 22:23:21
av RDX*
Jag sa att jag inte hade testat det (dvs. ej kompilerat eller kollat syntax). Men jag misstänker att felet inte var svårare än att du lyckas korrigera det :wink:.


nå, fungerade det? Vi väntar spänt :) .

Postat: 15 mars 2006, 22:27:14
av Tekko
Körde programmet i simulatorn, det loopar inte utan kör tills det kommer till "Loop until Tcnt >= Wa" där det stannar, kanske blir annat då det är överlagt i avren dock.

Ska testa vad som händer.

Postat: 15 mars 2006, 22:36:27
av Tekko
programmet funkade inte. Motorn vibrerar och ger igrån sej ljud men startar inte samt att knapparna inte ger någon påverkan.

Postat: 15 mars 2006, 23:02:44
av RDX*
Jag har kollat i simulatorn nu och det verkar fungera som det ska. Det som kan hjälpa är att stänga av timern i knappfunktionerna. Kopplade du knapparna rätt? Dvs de ska gå låga när du trycker ner knappen. Om du har kopplat fel så ändra debounce-parametern till aktiv hög.

Och startar motorn med en paus på 3ms? Du sa aldrig vilket intervall du ville ha på hastigheten!

Postat: 15 mars 2006, 23:10:31
av Tekko
Jag har knapparna på PD 2 och 3

Postat: 15 mars 2006, 23:38:15
av RDX*
jo, men är dom aktivt låga?


dvs att du har kopplat det så är

Kod: Markera allt

     |
     |-Pd2-------[ 10 k ]------ +5V
     |        |
               \
                \
              |
              |
            jord


Postat: 16 mars 2006, 10:02:29
av Tekko
Jag har fått knapparna att fungera men en utgång på avren har pajjat :cry:

På lägsta hastigheten startar motorn men ökar jag så stannar den och vibrerar bara.