Znaleziono 7 wyników

autor: george2002
15 wrz 2004, 01:12
Forum: Elektronika CNC
Temat: sterownik na procku...
Odpowiedzi: 24
Odsłony: 7253

kurce działa !!! :) denx za podpowiedz. czyli tak naprawdę to chyba wykryłem buga w bascomie :D
autor: george2002
13 wrz 2004, 22:02
Forum: Elektronika CNC
Temat: sterownik na procku...
Odpowiedzi: 24
Odsłony: 7253

hmm tak jak pisałem bawię się w bascomie dopiero miesiąc :)
czyli gdzie i jak to wsadzić ;) ?

próbowałem jużtakie opcje i nic :(
Gicr = &B11100000
lub
Set Mcusr.6
lub
Mcucsr = &B01000000
i też nic to nie dało przerwanie nie chodzi :(
autor: george2002
13 wrz 2004, 14:00
Forum: Elektronika CNC
Temat: sterownik na procku...
Odpowiedzi: 24
Odsłony: 7253

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 :)
autor: george2002
10 wrz 2004, 16:13
Forum: Elektronika CNC
Temat: sterownik na procku...
Odpowiedzi: 24
Odsłony: 7253

wielkie denx ponieważ myślę (chyba że się mylę) iż można zrobić niezły a dość tani sterowniczek z lpt step/dir i enable na bascomie wystarczy np opta na wejściu-atmega8535-irf510 na wyjściu i jest tani sterowniczek tak mi sięwydaje przynajmniej narazie nie myślę o czoperowaniu ale kto wie ;)
autor: george2002
09 wrz 2004, 19:38
Forum: Elektronika CNC
Temat: sterownik na procku...
Odpowiedzi: 24
Odsłony: 7253

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 :)
autor: george2002
09 wrz 2004, 01:24
Forum: Elektronika CNC
Temat: sterownik na procku...
Odpowiedzi: 24
Odsłony: 7253

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 :D ?

z góry denx george2002
autor: george2002
08 wrz 2004, 00:11
Forum: Elektronika CNC
Temat: sterownik na procku...
Odpowiedzi: 24
Odsłony: 7253

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

Wróć do „sterownik na procku...”