Wiertarka do pcb z posuwem

Prezentacje projektów
Awatar użytkownika
Jacek
Posty: 384
Rejestracja: 25 kwie 2016, 19:14

Re: Wiertarka do pcb z posuwem

Post autor: Jacek » 06 gru 2022, 11:25

Pan Bartek dziękuję za prezent na Mikołaja ;) jak tylko poprawie mechanikę podnoszenia dyszy ssącej bo źle wymyśliłem to zaraz będę próbował.
pozdrawiam Jacek.
Awatar użytkownika
Jacek
Posty: 384
Rejestracja: 25 kwie 2016, 19:14

Re: Wiertarka do pcb z posuwem

Post autor: Jacek » 06 gru 2022, 22:13

Kompilator wywala mi błędy ale mam wszystko dopisane jak napisałeś Bartek

Clipboard02.jpg

patrzyłem w innych programach jak mam "Select Case" i mam podobnie zrobione, błąd 1 w linii 222 nieznane stwierdzenie, w błąd 35 linii 223 oczekiwane 3 parametry i błąd 350 w linii 223 przerwanie wymaga powrotu - ale jest return możesz wyjaśnić co jest nie tak.
pozdrawiam Jacek
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Awatar użytkownika
niveasoft
Posty: 1239
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: Wiertarka do pcb z posuwem

Post autor: niveasoft » 06 gru 2022, 23:31

Moim zdaniem nie widzi tych stały i zmiennej Czynnosc. Dopisałes to?
Kolejność też jest ważna jak Ty wszystkie suby pakujesz do osobnych plików. To troche przerost formy. Rozumiem jakis zbiór komend dla silnika ale żeby kazdy sub miał plik... :D
  1.     Const Speed_max = 250
  2.     Const Speed_min = 10
  3.     Const Rozpedzanie = 1
  4.     Const Zwalnianie = 2
  5.     Dim Czynnosc As Byte
Awatar użytkownika
Jacek
Posty: 384
Rejestracja: 25 kwie 2016, 19:14

Re: Wiertarka do pcb z posuwem

Post autor: Jacek » 07 gru 2022, 9:12

Witam tak Bartku mam wszystko jak napisałeś

  1. '****************************************************************
  2. $regfile = "m328pdef.dat"
  3. $crystal = 16000000
  4. $hwstack = 64
  5. $swstack = 64
  6. $framesize = 128
  7. $baud = 115200
  8. $eepleave
  9. Config Submode = New
  10. '****************************************************************
  11. 'KONFIGURACJA PORTU COM
  12. Config Com1 = 115200 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
  13. Config Serialin = Buffered , Size = 128
  14. Config Serialout = Buffered , Size = 128
  15. Enable Serial
  16. '****************************************************************
  17.  'Debug Off
  18. Debug On
  19. '****************************************************************
  20. $include "Subs\Blink_.inc"
  21. $include "Subs\Display_.inc"
  22. $include "Subs\Hold_stepper.inc"
  23. $include "Subs\Left_stepper.inc"
  24. $include "Subs\Right_stepper.inc"
  25. '$include "Subs\LCD_ST7920_seriell_declare.inc"
  26. '$include "Subs\LCD_ST7920_seriell_sub.inc"
  27. '****************************************************************
  28.     'KONFIGURACJA TIMER'ÓW
  29. Config Timer0 = Timer , Prescale = 8
  30. On Timer0 Przer_timer0
  31. Enable Timer0
  32. Config Timer1 = Timer , Prescale = 8
  33. On Timer1 Przer_timer1
  34. Enable Timer1
  35. Config Timer2 = Timer , Prescale = 8
  36. On Timer2 Step_
  37. Enable Timer2
  38.     'Config Timer1 = Pwm , Pwm = 8 , Compare_a_pwm = Clear_up , Compare_b_pwm = Clear_down , Prescale = 1
  39. 'Config Timer2 = Pwm , Compare_a_pwm = Clear_up , Compare_b_pwm = Clear_up , Prescale = 1024
  40. 'Enable Timer2
  41. 'On Timer2 Step_
  42. 'Config Timer2 = Pwm , Compare_a = Toggle , Compare_b = Toggle , Prescale = 8
  43. 'Enable Timer2
  44. '****************************************************************
  45. Enable Interrupts
  46. '****************************************************************
  47.  '   *** PINY  ****
  48.  '   LCD ST9720      ATMEGA        LCD 12864ZW-10 ESD4K
  49.  '   RS  (4)   -      PORTD.7                 SPI ---> SS
  50.  '   R/W (5)   -      PORTB.0               SPI --->  MOSI
  51.  '   EN  (6)   -      PORTB.1                SPI ---> SCK
  52.  '   PBS (15) -GROUND                          GND
  53.  '   RST (17)  -    reset processor           RESET
  54. '****************************************************************
  55.     'KONFIGURACJA PORTÓW
  56. Config portb.0 = Output : portb.0 = 1                                           'Laser ON/OFF
  57. Config Portb.1 = output : portb.1 = 1                                           'Light ON/OFF                           '
  58. Config portb.2 = Output : portb.2 = 1                                           'PWM Spindle Motor
  59. Config Portb.3 = Output : portb.3 = 1                                           'Dir Spindle Motor
  60. Config Portb.4 = Input : pinb.4 = 1                                             'Encoder  Sw
  61. Config Portb.5 = Output : Portb.5 = 0                                           'LED_LIVE
  62. Config portd.2 = Output : portd.2 = 1                                           'Dir Stepper Motor
  63. Config portd.3 = Output : portd.3 = 1                                           'Step Stepper Motor
  64. Config portd.4 = Output : portd.4 = 1                                           'Enable Spindle Motor
  65. Config portd.5 = Output : portd.5 = 1                                           'Enable Stepper Motor
  66. Config portd.6 = Input : pind.6 = 1                                             'Sw start
  67. Config Portc.0 = Input : pinc.0 = 1                                             'Sw up
  68. Config portc.1 = Input : pinc.1 = 1                                             'Sw down
  69. Config portc.2 = Input : pinc.2 = 1                                             'Encoder A
  70. Config portc.3 = Input : pinc.3 = 1                                             'Encoder B
  71.  
  72.  
  73.  
  74. '****************************************************************
  75.     'ALIASY PORTÓW
  76. PWM_spindle Alias Portb.2                                                       'PWM Spindle Motor
  77. Dir_spindle Alias portb.3                                                       'Dir Spindle Motor
  78. Sw_enc Alias pinb.4                                                             'Encoder  Sw
  79. Led_live Alias Portb.5                                                          'LED shows that the microcontroller did not hang
  80. Dir_stepper Alias portd.2                                                       'Dir Stepper Motor
  81. Step_stepper Alias portd.3                                                      'Step Stepper Motor
  82. Ena_spindle Alias portd.4                                                       'Enable Spindle Motor
  83. Ena_stepper Alias portd.5                                                       'EnableStepper Motor
  84. Sw_start Alias pind.6                                                           'cycle start button
  85. Sw_up Alias pinc.0                                                              'upper limit switch
  86. Sw_down Alias pinc.1                                                            'lower limit switch
  87. A_enc Alias pinc.2                                                              'channel A encoder
  88. B_enc alias pinc.3                                                              'channel B encoder
  89. Laser Alias Portc.4                                                             'Laser ON/OFF
  90. Light Alias Portc.5                                                             'Light ON/OFF
  91. '****************************************************************
  92.     'ZMIENNE   CZASU
  93. Dim Timer_tikx10 As Byte                                                        'variable counting timer overflow
  94. Dim Timertikx100 As Byte
  95. Dim Timertikx200 As Byte
  96. Dim Timer_tik_flag As Byte
  97. Flaga10ms Alias Timer_tik_flag.0
  98. Flaga100ms Alias Timer_tik_flag.1
  99. Flaga500ms Alias Timer_tik_flag.2
  100. Flaga1s Alias Timer_tik_flag.3
  101. Flaga2s Alias Timer_tik_flag.4
  102. Flaga2_5s Alias Timer_tik_flag.5
  103.     'zostaly jeszce trzy wolne flagi
  104.     ' a uzylem tylko jednego bajtu
  105.     ' Paweł - pikczu
  106. Dim Timer0_tik_flag As Byte
  107. Flaga4ms Alias Timer0_tik_flag.6
  108. '****************************************************************
  109. 'STAŁE
  110. Const Speed_max = 250
  111. Const Speed_min = 10
  112. Const Rozpedzanie = 1
  113. Const Zwalnianie = 2
  114. '****************************************************************
  115. 'ZMIENNE
  116. Dim Enc_help As Byte
  117. Dim Sw_enc_help As Byte
  118. Dim Stepper_speed As Dword
  119. Dim Stepper_speed_old As Dword
  120. Dim Spindle_speed As Byte
  121. Dim Czynnosc As Byte
  122. '****************************************************************
  123.  
  124. Waitms 500
  125. '****************************************************************
  126. 'USTAWIENIA POCZATKOWE   'INITIAL SETTINGS
  127. 'Stepper_speed = 0
  128. '****************************************************************
  129.     'PĘTLA GŁÓWNA   'MAIN LOOP
  130. '****************************************************************
  131. Do
  132. '****************************************************************
  133.    If Timer_tikx10 >= 10 Then                                                   'jesli uplynelo 100ms to
  134.       Flaga100ms = 1                                                            'ustaw flage uplynelo 100ms
  135.       Incr Timertikx100
  136.       Timer_tikx10 = 0                                                          ''zeruj liczenie
  137.    End If
  138.    If Timertikx100 >= 10 Then                                                   'jesli uplynela sekunda
  139.       Flaga1s = 1                                                               'ustaw flage sekundy
  140.       Incr Timertikx200
  141.       Timertikx100 = 0                                                          'zeruj liczenie
  142.    End If
  143.    If Timertikx200 >= 2 Then
  144.       Flaga2s = 1
  145.       Timertikx200 = 0
  146.    End If
  147.    If Flaga10ms = 1 Then
  148.       Flaga10ms = 0
  149.    End If
  150.    If Flaga100ms = 1 Then                                                       'co 100ms
  151.       Flaga100ms = 0                                                            'wyzeruj Flaga100ms
  152.    End If
  153.    If Flaga1s = 1 Then                                                          'co 1 sekundę
  154.       Call Blink_
  155.       If Sw_up = 0 Then
  156.          Print "WRZECIONO U GORY"                                               'SPINDLE AT THE TOP
  157.       End If
  158.       If Sw_down = 0 Then
  159.          Print "WRZECIONO NA DOLE"                                              'SPINDLE AT THE BOTTOM
  160.       End If
  161.       If Sw_start = 0 Then
  162.          Print "START CYKLU"                                                    'CYCLE START
  163.       End If
  164.       'Call Display_
  165.       Flaga1s = 0
  166.    End If
  167.    If Flaga2s = 1 Then                                                          'co2s
  168.       Flaga2s = 0
  169.    End If
  170. '****************************************************************
  171.    If Sw_up = 0 Then
  172.       Call Hold_stepper
  173.    End If
  174.    If Sw_start = 0 Then
  175.       Call Left_stepper
  176.   ' Else
  177.    '   Call Right_stepper
  178.    End If
  179.    If Sw_down = 0 Then
  180.       Call Right_stepper
  181.    End If
  182. '****************************************************************
  183.  
  184. '****************************************************************
  185.  
  186. '****************************************************************
  187. Loop
  188. '****************************************************************
  189. End
  190. '****************************************************************
  191.     'PODPROGRAM PRZERWAŃ TIMER1
  192. Przer_timer1:
  193.    Timer1 = 45536                                                               'wstawienie do Timer1 wartości 45536
  194.    Incr Timer_tikx10
  195.    If Timer_tikx10 = 1 Then
  196.       Set Flaga10ms
  197.    End If
  198. Return
  199. '****************************************************************
  200.     'PODPROGRAM PRZERWAŃ TIMER0
  201. Przer_timer0:
  202.    Timer0 = 156                                                                 'wstawienie do Timer0 wartości 6
  203.    Incr Timer0_tik_flag
  204.    If Timer0_tik_flag = 1 Then
  205.       Set Flaga4ms
  206.    End If
  207. Return
  208. '****************************************************************
  209. Step_:
  210.     Select Case Czynnosc                                                        'Action
  211.       Case Rozpedzanie:                                                         'Speeding up
  212.          If Stepper_speed < Speed_max Then Incr Stepper_speed
  213.       Case Zwalnianie:                                                          'Releasing
  214.          If Stepper_speed > Speed_min Then Decr Stepper_speed
  215.     End Select
  216.    Timer2 = Stepper_speed
  217.    Toggle Step_stepper
  218. Return
  219. '****************************************************************

dziwnie że kompilator nie widzi stałych w innych programach stałe mam do komunikacji mikrokontrolera i to działa.
pozdrawiam Jacek.
Awatar użytkownika
niveasoft
Posty: 1239
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: Wiertarka do pcb z posuwem

Post autor: niveasoft » 07 gru 2022, 9:48

Mi się to kompiluje ALE DOPIERO jak poprawiłem składnie.

Ostatnio była podobna akcja na Forum MCS i tam pokazywałem, że jak się kod skądś przekleja to czesto wkradają się niewidoczne znaki czyli błędy.
LINK
Jak nie wiadomo o co chodzi to należy kod otworzyć w Notepad++ i poszukać niewidocznych znaków i je usunąć.
U Ciebie tego było dużo co widac na screenach (Notepad++ zaznacza takie rzeczy na czerwono).
Po wyczyszczeniu masz projekt który sie kompiluje.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Awatar użytkownika
Jacek
Posty: 384
Rejestracja: 25 kwie 2016, 19:14

Re: Wiertarka do pcb z posuwem

Post autor: Jacek » 07 gru 2022, 11:47

Kurczaki o tym nie pomyślałem :oops: że tak może się dziać po skopiowaniu z przeglądarki dzięki,
Notepad++ mam kiedyś Paweł pikczu mi podpowiedział że łatwo nim porównywać kody.
dzięki Bartek.
pozdrawiam Jacek.
Awatar użytkownika
niveasoft
Posty: 1239
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: Wiertarka do pcb z posuwem

Post autor: niveasoft » 07 gru 2022, 14:52

To wszystko z doświadczenia ale dziwnie sie potem słucha/czyta "stary lis" ahahahahahaha " :D
Powinno gdzies być zdefiniowane "doświadczony lis" :D ahahahahaha
Awatar użytkownika
Jacek
Posty: 384
Rejestracja: 25 kwie 2016, 19:14

Re: Wiertarka do pcb z posuwem

Post autor: Jacek » 07 gru 2022, 15:00

Włączyłem tą opcję na stałe i teraz w razie kopiowania z innych źródeł będzie widać jeszcze raz dzięki.
pozdrawiam Jacek.
Awatar użytkownika
Jacek
Posty: 384
Rejestracja: 25 kwie 2016, 19:14

Re: Wiertarka do pcb z posuwem

Post autor: Jacek » 12 gru 2022, 20:27

Witam na wstępie chcę podziękować Bartkowi wiertarka zaczęła żyć https://www.youtube.com/watch?v=Ix6G-es0KuI
musiałem zmienić system unoszenia dyszy bo pierwotny pomysł nie zdał egzaminu.
pozdrawiam Jacek.
Awatar użytkownika
Jacek
Posty: 384
Rejestracja: 25 kwie 2016, 19:14

Re: Wiertarka do pcb z posuwem

Post autor: Jacek » 15 gru 2022, 19:28

Witam - mały update https://www.youtube.com/watch?v=g37LFzBqkqE
pozdrawiam Jacek.
ODPOWIEDZ