Skocz do zawartości

[Kurs] BASCOM - lekcja3 - zaczynamy programować


Ikar

Pomocna odpowiedź

Witam wszystkich.Robię pierwsze kroki w programowaniu mikrokontrolerów,więc pojawiaja się pierwsze problemy.Walczę z moim pomysłem kilka dni i nic mi z tego nie wychodzi.Proszę was o pomoc.

Oto mój program

   $regfile = "m644pdef.dat"
$crystal = 16000000
 Config Porta = Output
  Porta = &B11111110                                       'PORTA 0  ustawiony na 1
                                                                               'PORTA1 ustawiony na   0
Config Portb = Output
Dataport Alias Portb

Config Pind.3 = Output
Led1 Alias Portd.3
Config Pind.4 = Output
Led2 Alias Portd.4
Config Pind.5 = Output
Led3 Alias Portd.5
Config Pind.6 = Output
Led4 Alias Portd.6

Set Led1
Set Led2
Do
If Porta.1 = 0 Then                                        ' jesli PORTA 1 ustawiony na 0 to na wyswietlaczy led 3 pokaz zero
Set Led3
Dataport = &B10000000
Reset Led3
End If
If Porta.1 = 1 Then                                         ' ale jesli  na PORT A 1   jest  1 to na led 3 wyswietl  jeden
Set Led3
Dataport = &B11110011
Reset Led3

End If
Loop
Do

If Porta.0 = 0 Then
Set Led4
Dataport = &B10000001                                       ' jesli PORTA 0 ustawiony na 0 to na wyswietlaczy led 4 pokaz zero
Reset Led4
End If
If Porta.0 = 1 Then
Set Led4
Dataport = &B11110011                                       ' ale jesli  na PORT A 1   jest  1 to na led 4  wyswietl  jeden
Reset Led4
End If
                                                                               'i tak dalej
Loop
 End

Chciałbym ,aby wyświetlacz LED pokazywał stan PORTU A

1. Jeżeli na PORCIE A.1 ustawie 0 to led 3 ma pokazać 0 ,a jesli ustawie 1 to led 3 ma pokazać 1

2. Jeżeli na PORCIE A.0 ustawie 1 to led 4 ma pokazać 1 ,a jesli ustawie 0 to led 4 ma pokazać 0

3. itd

4. Problem polega na tym ,że program pokazuje tylko stan PORTU A 0 .Na led 3 i led4 pokazują się jedynki, wygląda na to ,że nie działa pierwsza część programu

Program był na początku bardziej rozbudowany o następne PORTY I LEDY , ale zawsze pokazuje stan ostatniej częsci programu

Pozdrawiam i proszę o pomoc

Link do komentarza
Share on other sites

Pszczoła :

Mój pierwszy program, napisany w Bascom AVR 2.0.5.0.

Program nie rozpoznaje chipa.

$regfile = "attiny2313.dat" 'model proca

$crystal = 8000000 'taktowanie

Config Portb = Input 'port b jako wejścia

Portb = &B00000000 'wszędzie stan spoczynkowy 0

Config Portd = Output 'portd jako wyjścia

Portd = &B0000000 'wszystkie stan spoczynkowy 0

Do 'pętla nieskończona

If Pinb.0 = 1 Then 'jężeli przycisk 1 jest wciśnięty

Toggle Portd.0 'zmień stan wyprowadzeni

End If 'koniec bloku warunkowego

Loop 'koniec pętli

End 'koniec programu Polecenie toggle zmienia stan danej końcówki.

'Czyli na pinie 1 to zmienia to nz 0 i na odwrót.

Link do komentarza
Share on other sites

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

Witam wszystkich Forumowiczów

Nie wiem czy to dobry dział na takie pytanie -ale to temat o Bascomie.

Próbowałem zapisać program w Attiny13 za pomocą USBasp .Coś poszło nie tak (albo coś niestety źle ustawiłem ) i teraz nie wykrywa mi kości.

Drugą attine wykrywa prawidłowo

Ale nie chcę czegoś znów uwalić.Więc na razie się wstrzymuję z wgrywaniem.Czy można jakoś tą uwaloną przywrócić do życia?

Pozdrawiam

Link do komentarza
Share on other sites

Schemat tego jak ma to działać jak rozumiem?

i program:

$tiny
$regfile="attiny13.dat"
$crystal=128000
PORTB=0
DDRB=0

Config TIMER0=Timer,Prescale=256
On TIMER0_czas

Dim Czas As Iram Byte

Enable Interrupts
Enable TIMER0
Start TIMER0
Czas=0
Do:Loop Until Czas>=30
DDRB=255

Czas=0
Do:Loop Until Czas>=6
DDRB=0
Czas=0
Stop TIMER0
Disable TIMER0
Disable Interrupts

Powerdown

End

_czas:
Incr Czas
Return

Program nie jest mojego autorstwa - ktoś go napisał i podobno działa.

Jak coś nie tak to proszę o sugestie co zmienić.

Jest to program do automatycznego właczenia CB radia po 30 sek od uruchomienia samochodu (podania napięcia na zasilanie radia)

Na nóżce oznaczonej "impuls" ma się pojawić ,na chwilę ,napięcie które włączy radio.

Pozdrawiam

Poprawiłem przepraszam

__________

Komentarz dodany przez: Treker

Kody programów należy umieszczać przez narzędzie KOD (znajdziesz je w edytorze pod ikonką "<>"). Dzięki niemu składania programów jest automatycznie kolorowana, a wtedy wszystkim znacznie łatwiej analizować wklejone programy. Proszę to poprawić - z góry dziękuję za zrozumienie i pomoc przy utrzymaniu porządku na forum.

Link do komentarza
Share on other sites

Witam

Twój problem to - $crystal=128000 , a bardziej to chodzi o programator trzeba ustawić na "slow sck" . USBASP nie wszystkie to maja , sprawdź czy masz zworkę (powinny być dwie jedna na zasilanie -3v i 5v oraz "slow sck") i ustaw ją .

https://tosiek.pl/wp-content/uploads/2016/04/usbasp-v2.0-board-pinout.jpg

Dobrze byś zrobił używając program mkAVR kalkulator , ale narazie sprawdź pod samym bascomem

Daj znać czy się udało . Ja osobiście nie bawię się takimi małymi avr , wolę atmega32 i 128 a tu jedyne co poknociłem to to że ustawiłem generator zewnętrzyn (to akurat jest proste do odblokowania)

Link do komentarza
Share on other sites

Witam

Twój problem to - $crystal=128000 , a bardziej to chodzi o programator trzeba ustawić na "slow sck" . USBASP nie wszystkie to maja , sprawdź czy masz zworkę (powinny być dwie jedna na zasilanie -3v i 5v oraz "slow sck") i ustaw ją .

https://tosiek.pl/wp-content/uploads/2016/04/usbasp-v2.0-board-pinout.jpg

Dobrze byś zrobił używając program mkAVR kalkulator , ale narazie sprawdź pod samym bascomem

Daj znać czy się udało . Ja osobiście nie bawię się takimi małymi avr , wolę atmega32 i 128 a tu jedyne co poknociłem to to że ustawiłem generator zewnętrzyn (to akurat jest proste do odblokowania)

Co do programatora - to mam jedną zworkę dla wyboru zasilania 3 albo 5 V

Drugie miejsce to oznaczone JP2 - można by tam było zastosować jakiś mostek ale nie jest to opisane jako SCK

Więc nie wiem jak to sprawdzić - zaraz będę czytał w necie o tym.

I drugie pytanie - piszemy o odblokowaniu zawieszonej attiny ?

Czy piszesz mi o tej sprawnej ?

Pozdrawiam

Edit: mam jescze zworkę JP3 doczytałem że jest od sck -zaraz się biorę za lutowanie i zobaczymy co to da.

[ Dodano: 30-04-2018, 20:20 ]

No i nie da rady - wciąż nie widać kości mimo podlutowania mostka na SCK

Link do komentarza
Share on other sites

Wersji programatorów USBASP jest wiele , podstawowe nie maja możliwości zmiany sck (stare wersje ale można wgrać nowy soft i będą miały taką możliwość ..tyle że trzeba mieć drugi programator by ten pierwszy zaprogramować 🙂 ) . Są też z zworkami i możesz zmienić na SLOW , tu masz link do takiego co programowo i zworkom zmienia http://allegro.pl/programator-isp-usbasp-atmel-avr-tasma-win7-x64-i5395787383.html . Jak masz "mkavr calculator" to jest tam opcja do zmiany programowej , pobaw się tym . W tym linku jak zjedziesz niżej to masz pokazane najpierw z BASCOMEM potem z eclipse i masz okno z mkavr calculator i jest zaznaczony AUTO SCK (odchacz i ustaw inny , możliwe że załapie ) .... tu masz linka na elektrode (chlopaki to meczyli ,poszukaj ) https://www.elektroda.pl/rtvforum/topic322124.html

Link do komentarza
Share on other sites

Wersji programatorów USBASP jest wiele , podstawowe nie maja możliwości zmiany sck (stare wersje ale można wgrać nowy soft i będą miały taką możliwość ..tyle że trzeba mieć drugi programator by ten pierwszy zaprogramować 🙂 ) . Są też z zworkami i możesz zmienić na SLOW , tu masz link do takiego co programowo i zworkom zmienia http://allegro.pl/programator-isp-usbasp-atmel-avr-tasma-win7-x64-i5395787383.html . Jak masz "mkavr calculator" to jest tam opcja do zmiany programowej , pobaw się tym . W tym linku jak zjedziesz niżej to masz pokazane najpierw z BASCOMEM potem z eclipse i masz okno z mkavr calculator i jest zaznaczony AUTO SCK (odchacz i ustaw inny , możliwe że załapie ) .... tu masz linka na elektrode (chlopaki to meczyli ,poszukaj ) https://www.elektroda.pl/rtvforum/topic322124.html

Dzięki już ogarnąłem te zworki dla SCK jak pisałem.

Ale i tak attiny nie ruszyłem.Zostawię to sobie bo siedziałem nad tym z 5 godzin.

Chciałem ją odblokować ,bo myślałem że to proste a jak pisałem wcześniej mam ostatnią sprawną.

Czy ktoś mógłby mi skompilować ten program i podesłać hex-a ?

Chciałbym wgrać ten program i wlutować kość - a tak stoję w miejscu a boję się ostatnią attiny uwalić ,bo tu gdzie jestem to już jej nie kupię.

Pozdrawiam

Link do komentarza
Share on other sites

Dzięki mam

Zaraz będę próbował wgrywać. 😃

[ Dodano: 01-05-2018, 20:18 ]

Ok hex wgrany i daje się odczytywać z attiny.

Więc chyba jest wszystko OK

Zrobiłem na szybko test działania - ale nie mam żadnej diody led.Miernik cyfrowy nie wiem czy wyłapuje ten krótki impuls stanu niskiego.

No i zasilałem to z USB -więc też różnie z tym może być.

Postaram się jutro wlutować układ(podstawkę w razie czego 🙂) do radia i napiszę co się dalej dzieje.

Pozdrawiam

Link do komentarza
Share on other sites

Dziś wlutowałem kość do radia i niestety program nie działa.

Jestem w stanie go odczytać z Attiny .Wydaje się że wszystko OK a program nie działa.

Czy mogłem go jakoś błędnie wgrać?

Autor programu napisał.

"Ustawić fusebity na 128 khz bez prescalera /8 "

Czy to się ustawia w momencie wgrywania hex czy przed kompilowaniem?

Mógłby mi ktoś to przybliżyć?

Pozdrawiam

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!

Gość
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.