Skocz do zawartości

[bascom] spr. kodu do lf'a


Pomocna odpowiedź

Błędnie są również skonfigurowane porty mikrokontrolera. Przecież PORTB.5, PORTB.6, PORTB.7 mają pracować jako wejścia a Ty skonfigurowałeś je jako wyjścia, nie podłączyłeś też wewnętrznych rezystor podciągających przez:

PORTB.5 = 1
PORTB.6 = 1
PORTB.7 = 1

Jeśli odczytujesz stan portu musisz napisać PINB.5 a nie PORTB.5.

Link to post
Share on other sites
Błędnie są również skonfigurowane porty mikrokontrolera. Przecież PORTB.5, PORTB.6, PORTB.7 mają pracować jako wejścia a Ty skonfigurowałeś je jako wyjścia

Poprawiłem.

nie podłączyłeś też wewnętrznych rezystor podciągających przez:
PORTB.5 = 1 
PORTB.5 = 1 
PORTB.5 = 1

To co napisałeś zbytnio nie rozumiem.

Mam diodę led wpiętą do pinu2 (PD0) i w kodzie mam napisać:

Config Pind.0 = Output
Reset Portd.0

I jak mam RESET, MISO, MOSI, SCK też mam dać na Output?

Kod:

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

'Konfiguracja sterowania PWM
Config Timer1 = Pwm , Pwm = 8 , Prescale = 64 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up

'Konfiguracja portów
##wyjscia##
Config Pinb.5 = Input
Config Pinb.6 = Input
Config Pinb.7 = Input

##wejscia##
Config Pinb.4 = Output
Reset Portb.4
Config Pinb.3 = Output
Reset Portb.3
Config Pind.2 = Output
Reset Portd.2
Config Pind.5 = Output
Reset Portd.5
Config Pind.4 = Output
Reset Portd.4
Config Pind.3 = Output
Reset Portd.3
Config Pind.0 = Output
Reset Portd.0

'Opis prtów
'Enable1 - silnik lewy - PortB.4                      (PWM1A)
'Enable2 - silnik prawy - PortB.3                     (PWM1B)
'Input1 - Silnik lewy A - PortD.2
'Input2 - Silnik lewy B - PortD.5
'Input3 - Silnik prawy A - PortD.3
'Input4 - Silnik prawy B - PortD.4
'Dioda - PortD.0

Sensor_1 Alias Portb.5
Sensor_2 Alias Portb.6
Sensor_3 Alias Portb.7
Silnik_lewy_a Alias Portd.2
Silnik_lewy_b Alias Portd.5
Silnik_prawy_a Alias Portd.4
Silnik_prawy_b Alias Portd.3
Dioda Alias Portd.0


'Deklaracje zmiennych
Dim Czujnik_lewy As Single
Dim Czujnik_srodkowy As Single
Dim Czujnik_prawy As Single
Dim W As Word

'Blok instrukcji
Set Dioda
Set Silnik_lewy_a
Reset Silnik_lewy_b
Set Silnik_prawy_a
Reset Silnik_prawy_b

Do
Set Dioda
 If Sensor_1 = 0 Then
   If Sensor_3 = 1 Then
     Gosub Skrecaj_w_lewo
   Else
     Gosub Jedz_prosto
   End If
 Elseif Sensor_3 = 0 Then
   If Sensor_1 = 1 Then
     Gosub Skrecaj_w_prawo
   Else
     Gosub Jedz_prosto
   End If
 Else
   Gosub Jedz_prosto
 End If


Loop
End		'end program

Jedz_prosto:
 Set Silnik_lewy_a
 Set Silnik_lewy_b
 Reset Silnik_prawy_a
 Reset Silnik_prawy_b
Return

Skrecaj_w_prawo:
 Set Silnik_lewy_a
 Reset Silnik_lewy_b
 Reset Silnik_prawy_a
 Reset Silnik_prawy_b
 Waitms 10
Return

Skrecaj_w_lewo:
 Set Silnik_prawy_a
 Reset Silnik_prawy_b
 Reset Silnik_lewy_a
 Reset Silnik_lewy_b
 Waitms 10
Return
Link to post
Share on other sites
nie podłączyłeś też wewnętrznych rezystor podciągających przez:
PORTB.5 = 1 
PORTB.6 = 1 
PORTB.7 = 1

To co napisałeś zbytnio nie rozumiem.

Mam diodę led wpiętą do pinu2 (PD0) i w kodzie mam napisać:

Config Pind.0 = Output
Reset Portd.0

Musisz podłączyć wewnętrzne rezystory dla pinów, które deklarujesz jako wejścia (te gdzie masz podłączone jakieś czujniki), dla wyjść możesz lub nie musisz.

I jak mam RESET, MISO, MOSI, SCK też mam dać na Output?

Jeśli ich nie używasz jako linii I/O to nie musisz ich konfigurować.

Link to post
Share on other sites
Jeśli ich nie używasz jako linii I/O to nie musisz ich konfigurować.

Chyba nich nie używam jako linii I/O więc nie będę ich konfigurował.

Musisz podłączyć wewnętrzne rezystory dla pinów, które deklarujesz jako wejścia (te gdzie masz podłączone jakieś czujniki), dla wyjść możesz lub nie musisz.

Czyli mam napisać tak? :

PORTB.5 = 1 
PORTB.6 = 1 
PORTB.7 = 1

Tylko w którym miejscu w kodzie?

Link to post
Share on other sites

Dokładnie tak, instrukcje te muszą być wstawione na początku programu, ale nie jest ściśle określone, w którym miejscu, jednak dla przejrzystości programu wstawiłbym je zaraz po konfiguracji portów.

Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.