Skocz do zawartości

[Kurs] BASCOM - lekcja3 - zaczynamy programować


Pomocna odpowiedź

Odpal np. Pony proga jako administrator to może rozwiązać problem aczkolwiek nie wiadomo czy to wina ustawień czy może masz coś źle podłączone...

  • 4 tygodnie później...

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

  • 3 tygodnie później...

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.

  • 2 lat(a) później...

Witam,
U mnie wyskakuje taki napis Detected Micro does not match the selected Micro ATmega8, czyżbym źle przylutował elementy i mi nie łączy coś, czy mi nie działa ATmega8 ??

Pomocy

vegeta_000, niestety nie potrafimy wróżyć. Pokaż schemat, albo zdjęcia dobrej jakości, inaczej ciężko ocenić. Zresztą zamiast zajmować się Bascomem, to polecam przejść na nasz kurs Arduino.

  • 2 lat(a) później...

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

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.

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)

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

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

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

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

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

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