Znaleziono 7 wyników
Wróć do „sterownik na procku...”
- 15 wrz 2004, 01:12
- Forum: Elektronika CNC
- Temat: sterownik na procku...
- Odpowiedzi: 24
- Odsłony: 8025
- 13 wrz 2004, 22:02
- Forum: Elektronika CNC
- Temat: sterownik na procku...
- Odpowiedzi: 24
- Odsłony: 8025
- 13 wrz 2004, 14:00
- Forum: Elektronika CNC
- Temat: sterownik na procku...
- Odpowiedzi: 24
- Odsłony: 8025
hejka właśnie skleciłem taki programik sterujący (jak narazie) step/dir na 3 silniki na atmedzie8535 i mam taki problem: z dwoma przerwaniami działa rewelacja ale jeśli załączę trzecie przerwanie to przy kompilacji wyskakuje mi taki błąd:
error : 5 Line : 18 No more space for BIT [EICRA]
poniżej przedstawiam sklecony przezemnie programik na mój procek(mega8535):
'************************************************************
'* Program obsługi serownika silnika krokowego z mikrokrokiem *
'* dla procesora Mega8535 - wersja unipolarna *
'* (c) george2002 2004-09-11 *
'************************************************************
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
$regfile = "m8535.dat" 'wybór procka
$crystal = 8000000 'wartość użytego kwarcu
Config Porta = Output 'konfiguracja portów
Config Portb = Input 'konfiguracja portów
Config Portc = Output 'konfiguracja portów
Config Portd = Input 'konfiguracja portów
Config Int0 = Falling 'konfiguracja przewrania 0
Config Int1 = Falling 'konfiguracja przewrania 1
Config Int2 = Falling 'konfiguracja przewrania 2
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim Krokx As Byte 'zmienne
Dim Kroky As Byte 'zmienne
Dim Krokz As Byte 'zmienne
Dim Krokix(8) As Byte 'zmienne
Dim Krokiy(8) As Byte 'zmienne
Dim Krokiz(8) As Byte 'zmienne
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Enable Interrupts 'włączenie przerwań
Set Portd.2 'podciąganie wewnętrzne procka-przerwanie 0
Set Portd.3 'podciąganie wewnętrzne procka-przerwanie 1
Set Portd.4 'podciąganie wewnętrzne procka-dirx
Set Portd.5 'podciąganie wewnętrzne procka-diry
Set Portd.6 'podciąganie wewnętrzne procka-dirz
Set Portb.2 'podciąganie wewnętrzne procka-przerwanie 2
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Krokx = 1 'wartość początkowa
Kroky = 1 'wartość początkowa
Krokz = 1 'wartość początkowa
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Enable Int0 'włączenie przerwania 0
Enable Int1 'włączenie przerwania 1
Enable Int2 'włączenie przerwania 2
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
On Int0 Krokx Nosave 'procedura obsługi 0 przrwania
On Int1 Kroky Nosave 'procedura obsługi 1 przrwania
On Int2 Krokz Nosave 'procedura obsługi 2 przrwania
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Krokix(1) = &B11110001 'tablica kroków x
Krokix(2) = &B11110011 'tablica kroków x
Krokix(3) = &B11110010 'tablica kroków x
Krokix(4) = &B11110110 'tablica kroków x
Krokix(5) = &B11110100 'tablica kroków x
Krokix(6) = &B11111100 'tablica kroków x
Krokix(7) = &B11111000 'tablica kroków x
Krokix(8) = &B11111001 'tablica kroków x
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Krokiy(1) = &B10001111 'tablica kroków y
Krokiy(2) = &B11001111 'tablica kroków y
Krokiy(3) = &B01001111 'tablica kroków y
Krokiy(4) = &B01101111 'tablica kroków y
Krokiy(5) = &B00101111 'tablica kroków y
Krokiy(6) = &B00111111 'tablica kroków y
Krokiy(7) = &B00011111 'tablica kroków y
Krokiy(8) = &B10011111 'tablica kroków y
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Krokiz(1) = &B10000000 'tablica kroków z
Krokiz(2) = &B11000000 'tablica kroków z
Krokiz(3) = &B01000000 'tablica kroków z
Krokiz(4) = &B01100000 'tablica kroków z
Krokiz(5) = &B00100000 'tablica kroków z
Krokiz(6) = &B00110000 'tablica kroków z
Krokiz(7) = &B00010000 'tablica kroków z
Krokiz(8) = &B10010000 'tablica kroków z
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Do 'pętla
'pętla
Loop 'pętla
End 'koniec programu
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Krokx: 'obsługa 1 przerwania
Disable Interrupts 'wyłączenie przerwań
If Pind.4 = 0 Then 'jeżeli pind.4 ma stan niski to:
If Krokx > 2 Then Decr Krokx Else Krokx = 8 'jeżeli krokx większy od 2 wtedy zmniejsz krokx w przeciwnym wypadku krokx równa się 8
Elseif Pind.4 = 1 Then 'innaczej jeśeli pind.4 ma stan wysoki to:
If Krokx < 8 Then Incr Krokx Else Krokx = 1 'jeżeli krokx mniejszy od 8 wtedy zwiększ krokx w przeciwnim wypadku krokx równa się 1
End If 'koniec warunku
Portc = Krokix(krokx) And Krokiy(kroky) 'wyjście kroków na port c
Enable Interrupts 'włączenie przerwań
Return 'powrót do miejsca wywołania
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Kroky: 'obsługa 1 przerwania
Disable Interrupts 'wyłączenie przerwań
If Pind.5 = 0 Then 'jeżeli pind.5 ma stan niski to:
If Kroky > 2 Then Decr Kroky Else Kroky = 8 'jeżeli kroky większy od 2 wtedy zmniejsz kroky w przeciwnym wypadku kroky równa się 8
Elseif Pind.5 = 1 Then 'innaczej jeśeli pind.5 ma stan wysoki to:
If Kroky < 8 Then Incr Kroky Else Kroky = 1 'jeżeli kroky mniejszy od 8 wtedy zwiększ kroky w przeciwnim wypadku kroky równa się 1
End If 'koniec warunku
Portc = Krokiy(kroky) And Krokix(krokx) 'wyjście kroków na port c
Enable Interrupts 'włączenie przerwań
Return 'powrót do miejsca wywołania
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Krokz: 'obsługa 1 przerwania
Disable Interrupts 'wyłączenie przerwań
If Pind.6 = 0 Then 'jeżeli pind.6 ma stan niski to:
If Krokz > 2 Then Decr Krokz Else Krokz = 8 'jeżeli krokz większy od 2 wtedy zmniejsz krokz w przeciwnym wypadku krokz równa się 8
Elseif Pind.6 = 1 Then 'innaczej jeśeli pind.6 ma stan wysoki to:
If Krokz < 8 Then Incr Krokz Else Krokz = 1 'jeżeli krokz mniejszy od 8 wtedy zwiększ krokz w przeciwnim wypadku krokz równa się 1
End If 'koniec warunku
Porta = Krokiz(krokz) 'wyjście kroków na port a
Enable Interrupts 'włączenie przerwań
Return
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
i teraz mam do kolegów piszących coś w bascom pytanie:
wg noty katalogowej mega8535 ma 3 zewnętrzne przerwania 0, 1 i 2
co można zrobić bo to 2 przerwanie chodziło ???
albo jak to zrobić ???
dzięki z wskazówki
george2002
PS.
Załączam też notę katalogową mega8535
error : 5 Line : 18 No more space for BIT [EICRA]
poniżej przedstawiam sklecony przezemnie programik na mój procek(mega8535):
'************************************************************
'* Program obsługi serownika silnika krokowego z mikrokrokiem *
'* dla procesora Mega8535 - wersja unipolarna *
'* (c) george2002 2004-09-11 *
'************************************************************
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
$regfile = "m8535.dat" 'wybór procka
$crystal = 8000000 'wartość użytego kwarcu
Config Porta = Output 'konfiguracja portów
Config Portb = Input 'konfiguracja portów
Config Portc = Output 'konfiguracja portów
Config Portd = Input 'konfiguracja portów
Config Int0 = Falling 'konfiguracja przewrania 0
Config Int1 = Falling 'konfiguracja przewrania 1
Config Int2 = Falling 'konfiguracja przewrania 2
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim Krokx As Byte 'zmienne
Dim Kroky As Byte 'zmienne
Dim Krokz As Byte 'zmienne
Dim Krokix(8) As Byte 'zmienne
Dim Krokiy(8) As Byte 'zmienne
Dim Krokiz(8) As Byte 'zmienne
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Enable Interrupts 'włączenie przerwań
Set Portd.2 'podciąganie wewnętrzne procka-przerwanie 0
Set Portd.3 'podciąganie wewnętrzne procka-przerwanie 1
Set Portd.4 'podciąganie wewnętrzne procka-dirx
Set Portd.5 'podciąganie wewnętrzne procka-diry
Set Portd.6 'podciąganie wewnętrzne procka-dirz
Set Portb.2 'podciąganie wewnętrzne procka-przerwanie 2
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Krokx = 1 'wartość początkowa
Kroky = 1 'wartość początkowa
Krokz = 1 'wartość początkowa
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Enable Int0 'włączenie przerwania 0
Enable Int1 'włączenie przerwania 1
Enable Int2 'włączenie przerwania 2
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
On Int0 Krokx Nosave 'procedura obsługi 0 przrwania
On Int1 Kroky Nosave 'procedura obsługi 1 przrwania
On Int2 Krokz Nosave 'procedura obsługi 2 przrwania
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Krokix(1) = &B11110001 'tablica kroków x
Krokix(2) = &B11110011 'tablica kroków x
Krokix(3) = &B11110010 'tablica kroków x
Krokix(4) = &B11110110 'tablica kroków x
Krokix(5) = &B11110100 'tablica kroków x
Krokix(6) = &B11111100 'tablica kroków x
Krokix(7) = &B11111000 'tablica kroków x
Krokix(8) = &B11111001 'tablica kroków x
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Krokiy(1) = &B10001111 'tablica kroków y
Krokiy(2) = &B11001111 'tablica kroków y
Krokiy(3) = &B01001111 'tablica kroków y
Krokiy(4) = &B01101111 'tablica kroków y
Krokiy(5) = &B00101111 'tablica kroków y
Krokiy(6) = &B00111111 'tablica kroków y
Krokiy(7) = &B00011111 'tablica kroków y
Krokiy(8) = &B10011111 'tablica kroków y
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Krokiz(1) = &B10000000 'tablica kroków z
Krokiz(2) = &B11000000 'tablica kroków z
Krokiz(3) = &B01000000 'tablica kroków z
Krokiz(4) = &B01100000 'tablica kroków z
Krokiz(5) = &B00100000 'tablica kroków z
Krokiz(6) = &B00110000 'tablica kroków z
Krokiz(7) = &B00010000 'tablica kroków z
Krokiz(8) = &B10010000 'tablica kroków z
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Do 'pętla
'pętla
Loop 'pętla
End 'koniec programu
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Krokx: 'obsługa 1 przerwania
Disable Interrupts 'wyłączenie przerwań
If Pind.4 = 0 Then 'jeżeli pind.4 ma stan niski to:
If Krokx > 2 Then Decr Krokx Else Krokx = 8 'jeżeli krokx większy od 2 wtedy zmniejsz krokx w przeciwnym wypadku krokx równa się 8
Elseif Pind.4 = 1 Then 'innaczej jeśeli pind.4 ma stan wysoki to:
If Krokx < 8 Then Incr Krokx Else Krokx = 1 'jeżeli krokx mniejszy od 8 wtedy zwiększ krokx w przeciwnim wypadku krokx równa się 1
End If 'koniec warunku
Portc = Krokix(krokx) And Krokiy(kroky) 'wyjście kroków na port c
Enable Interrupts 'włączenie przerwań
Return 'powrót do miejsca wywołania
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Kroky: 'obsługa 1 przerwania
Disable Interrupts 'wyłączenie przerwań
If Pind.5 = 0 Then 'jeżeli pind.5 ma stan niski to:
If Kroky > 2 Then Decr Kroky Else Kroky = 8 'jeżeli kroky większy od 2 wtedy zmniejsz kroky w przeciwnym wypadku kroky równa się 8
Elseif Pind.5 = 1 Then 'innaczej jeśeli pind.5 ma stan wysoki to:
If Kroky < 8 Then Incr Kroky Else Kroky = 1 'jeżeli kroky mniejszy od 8 wtedy zwiększ kroky w przeciwnim wypadku kroky równa się 1
End If 'koniec warunku
Portc = Krokiy(kroky) And Krokix(krokx) 'wyjście kroków na port c
Enable Interrupts 'włączenie przerwań
Return 'powrót do miejsca wywołania
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Krokz: 'obsługa 1 przerwania
Disable Interrupts 'wyłączenie przerwań
If Pind.6 = 0 Then 'jeżeli pind.6 ma stan niski to:
If Krokz > 2 Then Decr Krokz Else Krokz = 8 'jeżeli krokz większy od 2 wtedy zmniejsz krokz w przeciwnym wypadku krokz równa się 8
Elseif Pind.6 = 1 Then 'innaczej jeśeli pind.6 ma stan wysoki to:
If Krokz < 8 Then Incr Krokz Else Krokz = 1 'jeżeli krokz mniejszy od 8 wtedy zwiększ krokz w przeciwnim wypadku krokz równa się 1
End If 'koniec warunku
Porta = Krokiz(krokz) 'wyjście kroków na port a
Enable Interrupts 'włączenie przerwań
Return
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
i teraz mam do kolegów piszących coś w bascom pytanie:
wg noty katalogowej mega8535 ma 3 zewnętrzne przerwania 0, 1 i 2
co można zrobić bo to 2 przerwanie chodziło ???
albo jak to zrobić ???
dzięki z wskazówki
george2002
PS.
Załączam też notę katalogową mega8535
- 10 wrz 2004, 16:13
- Forum: Elektronika CNC
- Temat: sterownik na procku...
- Odpowiedzi: 24
- Odsłony: 8025
- 09 wrz 2004, 19:38
- Forum: Elektronika CNC
- Temat: sterownik na procku...
- Odpowiedzi: 24
- Odsłony: 8025
mógłbyś ottop opisać w tych plikach dokładnie co się dzieje w każdej linijce ponieważ w bascomie programuję dopiero miesiąc i do końca nie wiem co w tym programie każda linijka robi
, swoją drogą myślę że jeszcze troszkę i uda mi się zrobić na atmedze 8535 sterownik na 3 silniczki step, dir, enable i mikrokroki później tylko z wyjść atmegi jakieś moce np irf510 i może być to dość tani sterowniczek 
- 09 wrz 2004, 01:24
- Forum: Elektronika CNC
- Temat: sterownik na procku...
- Odpowiedzi: 24
- Odsłony: 8025
denx za odp i jeśli znajdziesz to będę wdzięczny bo przypuszczam że nardzo dużo może mi twuj programik na procka podpowiedzieć ponieważ jestem tak jak już pisałem w fazie testów sterownika 3 silniczków bipolarnych na atmedze 8535 ale jednak potrzebuję jeszcze paru informacji które może znajdę w twoim progsie
aha a tak przy okazji to tutaj go wrzucisz czy gdzieś indziej
?
z góry denx george2002
z góry denx george2002
- 08 wrz 2004, 00:11
- Forum: Elektronika CNC
- Temat: sterownik na procku...
- Odpowiedzi: 24
- Odsłony: 8025
hejka
czy mógłbyś Ottop wrzucićtutaj ten swój projekt w bascom bo też robię sterowanie tylko na procku 8535 ale jak narazie wolno mi to idzie tak więc jakbyś mógł to prosiłbym żebyś wrzucił swój projekcik w bascomie 
denx pozdro george2002
denx pozdro george2002




