Skocz do zawartości

[Bascom] Początki nauki programowania


Pomocna odpowiedź

Do robienie screenów używam Painta.

W domu mam dwa laptopy:

-jeden ma procek 233Mhz i Windows ME bez Painta (okrojona wersja by zajmowała jak najmniej miejsca) , za to ma gniazdo RS232, LPT i tego używam do programowania bo mam programator na LPT

-drugi ma XP (w nim nie mam gniazd RS232 i LPT) i tam mam Eagle i mogę robić screeny

Może wy znacie jakiś inny sposób na robienie screenów, ja niestety nie znam i bez Painta nie zrobie.

Sabre uważasz że jestem leniwy? Gdybym nie chciał żebyście mi pomogli to bym nawet tu nie pisał.

Myślisz że przepisanie tego co było w Bascomie zajełoby mi mniej czasu niż zrobienie screena?

KD93 - dzięki za pomoc

za poradą Sabre napisałem program na mrugającą diodę

Po wyjęciu kwarca nic się nie dzieje, po włożeniu go na miejsce dioda zaczyna migać ale około 2 razy na sek. a nie jak jest zapisane w programie raz na sek.

wrzucam tez fotkę z Bascoma

$regfile = "8535def.dat"
$crystal = 100000
Config Pinb.3 = Output 

Do 
Set Portb.3 
Wait 1 
Reset Portb.3 
Wait 1 
Loop 

End
Po wyjęciu kwarca nic się nie dzieje, po włożeniu go na miejsce dioda zaczyna migać ale około 2 razy na sek. a nie jak jest zapisane w programie raz na sek.

wrzucam tez fotkę z Bascoma

Wygląda na to, że ten mikrokontroler nie ma/nie jest ustawiony na wewnętrzny oscylator. Nic dziwnego, że dioda miga czterokrotnie szybciej, podłączasz przecież rezonator nie 1MHz tylko 4MHz, popraw w programie linijkę $crystal = 4000000, przynajmniej dioda powinna migać prawidłowo.

  • Lubię! 1

Wyczytałem gdzies wcześniej że wszystkie atmegi mają wewnętrzny rezonator a seria AT90 nie posiada go.

Czy zdjęcie z Bascoma coś Ci dało?

Czemu nie reaguje na sygnały wejściowe?

Wcześniej ten procesor był w sterowniku od pieca, po wciśnieciu switcha zapalała się dioda.

Teraz gdy go mam na płytce stykowej nie reaguje na switcha, gdy pisałem wcześniej programy i był na oryginalnej płytce to tez nie reagował

Bardzo możliwe, że ten mikrokontroler jest już uszkodzony. Spojrzałem w dokumentację i on ma wewnętrzne pull-upy więc wcześniejsze kody powinny działać prawidłowo.

Podłącz diodę pod port C.0 (oczywiście z rezystorem w szeregu), przycisk pod C.1 (drugi koniec do masy):

$regfile = "8535def.dat"
$crystal = 4000000

Config Pinc.0 = Output                                      ' dioda
Config Pinc.1 = Input                                       'przycisk

Led1 Alias Portc.0

Do
  Set Portc.1

  If Pinc.1 = 0 Then

     Toggle Led1
     Waitms 500
  End If

Loop

End

Jeśli to w dalszym ciągu nie będzie działać kup nową wersję tego mikrokontrolera ATmega8535.

  • Pomogłeś! 1

Dzięki za odpowiedź

Sprawdze to wieczorem i dam znać.

Wątpie żeby był uszkodzony bo mam dwa takie same uC, oba wyciągniete z identycznych sterowników od pieca - chyba że los mi nie sprzyja 😉

A więc sprawdziłem

Oba uC mają uszkodzone porty d

Na portach b i c ostani program działa, na porcie d zapalają się razem nie wszystkie diody i świecą z różnym natężeniem

w tym kodzie po odwróceniu portu d z b uC reaguje na switche choć nie pamiętam już czy poprawnie

$regfile = "8535def.dat" 
$crystal = 4000000 

Config Portb = Output 
Config Portd = Input 

Led1 Alias Portb.0 
Led2 Alias Portb.1 
Led3 Alias Portb.2 
Led4 Alias Portb.3 
Led5 Alias Portb.4 

S1 Alias Pind.0 
S2 Alias Pind.1 
S3 Alias Pind.2 
S4 Alias Pind.3 
S5 Alias Pind.4 

Set Portd.0 
Set Portd.1 
Set Portd.2 
Set Portd.3 
Set Portd.4 

Do 
 If S1 = 0 Then Toggle Led1 
 If S2 = 0 Then Toggle Led2 
 If S3 = 0 Then Toggle Led3 
 If S4 = 0 Then Toggle Led4 
 If S5 = 0 Then Toggle Led5 
 Waitms 500 
  Loop 
End 

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...