Skocz do zawartości

[Kurs] BASCOM - lekcja3 - zaczynamy programować


Pomocna odpowiedź

  • 3 miesiące później...
Do procesora podepniemy diodę led z rezystorem 100Ω, kondensator 100µF oraz dwa tact switche.

1. Jaki ma być ten kondensator bo są różne. Ceramiczny, elektrolityczny czy jaki?

może być np ten?

kondensator biopilarny elektrolityczny

a ten tact switch to domyślam się że wystarczy zwykły przełącznik np ten tak?

TACT SWITH

Z góry dziękuje

pzdr

Weź sie nie ośmieszaj. Ceramiczny o pojemności 100uF?? Chodzi o elektrolita.

  • 1 miesiąc później...

No to mam mały problem 🙂 a mianowicie. Próbując przesłać program do procka wyskakuje mi błąd:

Could not identify chip with ID: FFFFFF

Potem:

Selected chip and target chip not match At90S1200 <> ATinny2313

Procek zimny jak diabli 🙂 wiec raczej się nie pali. Zasilanie 5V jest podłączone.

Jak to naprawić 🙂 Raczej wszystko dobrze podłączyłem i nawet dioda świeci podczas próby wysłania programu 😋

Powodów może być mnóstwo, np. źle zrobiony programator, źle podłączone/brak napięcia, źle skonfigurowany Bascom, źle podłączony procek do programatora.

Już naprawiłem 🙂 Źle by procek z programatorem podłączony 🙂

Ale mam pytanie. Czy jak już napisze program to wystarczy f4 i już będzie procek zaprogramowany?

Najpierw musisz skompilować program (F7), możesz sobie ustawić, że gdy klikasz F4 automatycznie się programuje (Options->Programmer i zaznacz Auto Flash), oczywiście przed programowaniem musisz skompilować program 🙂 czyli jeśli zaznaczysz auto flash to klikasz F7 i F4 i procek zaprogramowany.

Ok miga mi dioda już 🙂.

A teraz jeśli chcę wgrać nowy program to muszę jakoś stary usunąć ? 🙂

Bo wgrałem ten programik:

$regfile = "attiny2313.dat"                 'najpierw określamy typ proca
$crystal = 1000000                          'definiujemy z jakim taktowaniem będzie pracował


config portb=input                          'port b  jako wejścia
      portb=&B00000000                     'wszędzie stan spoczynkowy-0
config portd=output                         'pprt d jako wyjścia
      portd=&B0000000                      'wszędzie stan spoczynkowy-0


do                                         'pętla nieskończona

   waitms 500                              'czekaj 0,5 sekundy
   toggle portd.0                          'zmień stan wyprowadzenia

loop                                       'koniec pętli

end                                         'koniec programu 

I trochę go zmieniłem na taki:

$regfile = "attiny2313.dat"                                 'najpierw określamy typ proca
$crystal = 1000000                          'definiujemy z jakim taktowaniem będzie pracował


config portb=input                          'port b  jako wejścia
      portb=&B00000000                     'wszędzie stan spoczynkowy-0
config portd=output                         'pprt d jako wyjścia
      portd=&B0000000                      'wszędzie stan spoczynkowy-0


do                                         'pętla nieskończona

   waitms 500                              'czekaj 0,5 sekundy
   Toggle Portd.0                                          'zmień stan wyprowadzenia
    Waitms 400                                             'czekaj 0,5 sekundy
   Toggle Portd.0                                          'zmień stan wyprowadzenia
    Waitms 300                                             'czekaj 0,5 sekundy
   Toggle Portd.0                                          'zmień stan wyprowadzenia
    Waitms 200                                             'czekaj 0,5 sekundy
   Toggle Portd.0                                          'zmień stan wyprowadzenia
    Waitms 100                                             'czekaj 0,5 sekundy
   Toggle Portd.0                                          'zmień stan wyprowadzenia
    Waitms 090                                             'czekaj 0,5 sekundy
   Toggle Portd.0                                          'zmień stan wyprowadzenia
     Waitms 080                                            'czekaj 0,5 sekundy
   Toggle Portd.0                                          'zmień stan wyprowadzenia
     Waitms 070                                            'czekaj 0,5 sekundy
   Toggle Portd.0                                          'zmień stan wyprowadzenia
     Waitms 060                                            'czekaj 0,5 sekundy
   Toggle Portd.0                                          'zmień stan wyprowadzenia
     Waitms 050                                            'czekaj 0,5 sekundy
   toggle portd.0                                          'zmień stan wyprowadzenia

loop                                       'koniec pętli

end            

I cały czas działa tak jak na tym pierwszym. Czyli miga równo.

A co tutaj jest nie tak:

$regfile = "attiny2313.dat"                                 'najpierw określamy typ proca
$crystal = 1000000                                          'definiujemy z jakim taktowaniem będzie pracował


Config Portb = Input                                        'port b  jako wejścia
      Portb = &B00000000                                   'wszędzie stan spoczynkowy-0
Config Portd = Output                                       'pprt d jako wyjścia
      Portd = &B0000000                                    'wszędzie stan spoczynkowy-0


Do                                                         'pętla nieskończona

 If Pinb.0 = 1 Then
   Waitms 500                                              'czekaj 0,5 sekundy
   Toggle Portd.0                                          'zmień stan wyprowadzenia
    Waitms 400                                             'czekaj 0,5 sekundy
   Toggle Portd.0                                          'zmień stan wyprowadzenia
    Waitms 300                                             'czekaj 0,5 sekundy
   Toggle Portd.0                                          'zmień stan wyprowadzenia
    Waitms 200                                             'czekaj 0,5 sekundy
   Toggle Portd.0                                          'zmień stan wyprowadzenia
    Waitms 100                                             'czekaj 0,5 sekundy
   Toggle Portd.0                                          'zmień stan wyprowadzenia
    Waitms 090                                             'czekaj 0,5 sekundy
   Toggle Portd.0                                          'zmień stan wyprowadzenia
     Waitms 080                                            'czekaj 0,5 sekundy
   Toggle Portd.0                                          'zmień stan wyprowadzenia
     Waitms 070                                            'czekaj 0,5 sekundy
   Toggle Portd.0                                          'zmień stan wyprowadzenia
     Waitms 060                                            'czekaj 0,5 sekundy
   Toggle Portd.0                                          'zmień stan wyprowadzenia
     Waitms 050                                            'czekaj 0,5 sekundy
   Toggle Portd.0
 End If

 If Pinb.0 = 0 Then
 Portd.0 = 1
 End If                                                    'koniec if

Loop                                                       'koniec pętli

End            

Powinna dioda cały czas się świecić a gdy naciśnie się przycisk powinna zacząć coraz szybciej migać. A cały czas miga (coraz szybciej).

Hmm nie do końca rozumiem, mógłbyś troszke jaśniej mi to wytłumaczyć 🙂.

2. Skopiowałem pierwszy program w tym artykule na procka i jest problem bo dioda cały czas się świeci nie zależnie od tego czy naciskam przycisk czy nie 🙂 a wydaje mi sie ze wszystko zmontowane mam ok 🙂

a diodę masz do Vcc, czy do masy podpiętą z drugiej strony?

__________

Komentarz dodany przez: Sabre

Zdanie zaczynamy z dużej litery.

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...