Skocz do zawartości

[Bascom] Początki nauki programowania


agrala

Pomocna odpowiedź

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

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

Link do komentarza
Share on other sites

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
Link do komentarza
Share on other sites

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
Link do komentarza
Share on other sites

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ł

Link do komentarza
Share on other sites

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
Link do komentarza
Share on other sites

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 
Link do komentarza
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.