problem z attiny2313

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
Awatar użytkownika
curylop
-
Posty: 64
Rejestracja: 29 lip 2006, 21:43
Kontakt:

problem z attiny2313

Post autor: curylop » 13 sty 2007, 16:19

Problem w tym że wgram program do procesora wszystko ładnie tylko ze program jest tak napisany aby dioda mrugała atu nie mruga tylko non stop świeci co jest nie tak ??

ZbeeGin

Post autor: ZbeeGin » 13 sty 2007, 16:24

Może załączy kolega listing i sposób sterowania diody?

Awatar użytkownika
curylop
-
Posty: 64
Rejestracja: 29 lip 2006, 21:43
Kontakt:

Post autor: curylop » 13 sty 2007, 16:25

$regfile = "2313def.dat"
$crystal = 8000000
Config Portd = Output
Portd = &B0101010
Do
Rotate Portd , Left
Waitms 200
Loop
End

ZbeeGin

Post autor: ZbeeGin » 13 sty 2007, 16:34

curylop pisze:$regfile = "2313def.dat"
Gwoli ścisłości jeśli w temacie się nie pomyliłeś:

Kod: Zaznacz cały

$regfile = "attiny2313.dat"
Kwarc masz 8MHz, a czy ustawiłeś zewnętrzny kwarc w Tiny2313? Zakładka Lock and Fuse Bits.
Ok. Zostaw na razie tą zakładkę w spookju. Najpierw spróbuj jeszcze zamiast:

Kod: Zaznacz cały

$Crystal = 8000000
wpisać

Kod: Zaznacz cały

$Crystal = 1000000
Jaki efekt?

I zdecyduj jakiego w końcu używasz modelu procesora: AT90s2313 czy ATTiny2313.
Mam też nadzieję, że diodą sterujesz od strony katody nie anody.

[ Dodano: 2007-01-13, 16:44 ]
Dodatkowo o jednej jedynce jeszcze zapomniałeś:

Kod: Zaznacz cały

Portd = &B01010101

Awatar użytkownika
curylop
-
Posty: 64
Rejestracja: 29 lip 2006, 21:43
Kontakt:

Post autor: curylop » 13 sty 2007, 16:46

jak wpiszę
$regfile = "tiny2313.dat"
to jak wezmę COMPILE CURRENT FILE
T mi wyskakuje
DAT FILE; TINY2313.DAT, NOT FOUND
Co jest nie tak??

ZbeeGin

Post autor: ZbeeGin » 13 sty 2007, 16:49

Masz po prostu starą wersję BASCOM-AVR. Więc zostaw na razie "2313def.dat".
Dopisz tą jedynkę na końcu.

Awatar użytkownika
curylop
-
Posty: 64
Rejestracja: 29 lip 2006, 21:43
Kontakt:

Post autor: curylop » 13 sty 2007, 16:56

wstawiłem ale dalej nie mruga

[ Dodano: 2007-01-13, 16:59 ]
diodą steruje od strony katody

ZbeeGin

Post autor: ZbeeGin » 13 sty 2007, 17:02

Wytłumacz jak podłączyłeś diodę. I czy podłączenie do innego pinu daje taki sam efekt - skoro przesuwasz stany w całym porcie PortD.

[ Dodano: 2007-01-13, 17:06 ]
Aha... Na czas działania programator oczywiście odłączasz od układu...?

Awatar użytkownika
curylop
-
Posty: 64
Rejestracja: 29 lip 2006, 21:43
Kontakt:

Post autor: curylop » 13 sty 2007, 17:14

mam podłączoną jedną diodę do portu PD0 przez rezystor470R
sprawdziłem na pinach ale teraz wogule nie świeci dioda
wypinam programator

[ Dodano: 2007-01-13, 17:39 ]
sprawdzałem na wszystkich pinach PD świeci dioda
jak wypne programator z kompa to mrygnie 1 raz a potem wogule

[ Dodano: 2007-01-13, 17:51 ]
mam wersje BASCOM-AVR 1.11.7.7

Awatar użytkownika
Aro
Użytkownik
Posty: 677
Rejestracja: 30 paź 2006, 18:49
Lokalizacja: Świerczyniec | Wrocław
Kontakt:

Post autor: Aro » 13 sty 2007, 20:33

Z tego co się orientuję to polecenie Portd=&B10101010 i Rotate działa tylko w pełnej wersji Bascom AVR albo w Bascom 8051. U mnie w wersji demo też niemożna tak zrobic. Za to działa Set Pinb.0 i takie podobne.

ZbeeGin

Post autor: ZbeeGin » 13 sty 2007, 22:20

Aro pisze:Z tego co się orientuję to polecenie Portd=&B10101010 i Rotate działa tylko w pełnej wersji Bascom AVR albo w Bascom 8051.
Jeśli prawdą jest co piszesz Aro, to program skompilowany przez pełną wersję - patrz załączone pliki - działałby bez problemu. Choć może się tak zdarzyć(!), gdyż aktualnie używam BASCOM AVR 1.11.8.4 w którym - o ile był taki błąd - instrukcje te mogły zostać naprawione. Jednak nie jestem przekonany co do słuszności Twojego wywodu.
Aro pisze:Za to działa Set Pinb.0 i takie podobne.
Akurat w mikrokontrolerach AVR z serii Mega i nowsze Tiny, da się taką instrukcję wykonać. Pozwala ona na szybkie odwracanie stanu końcówki - operacja toggle. Układ Tiny2313 właśnie do nich należy, jednak nie we wszystkich mikrokontrolerach taka operacja jest możliwa.

----

Prośba do koloegi curylop by podesłał program razem z plikami wynikowymi wygenerowanymi przez jego BASCOM-a. Sprawdzę w AVR Studio czy podany program działa jak należy.

Awatar użytkownika
Aro
Użytkownik
Posty: 677
Rejestracja: 30 paź 2006, 18:49
Lokalizacja: Świerczyniec | Wrocław
Kontakt:

Post autor: Aro » 14 sty 2007, 10:26

ZbeeGin pisze:Jednak nie jestem przekonany co do słuszności Twojego wywodu.

Też nie jestem tego pewny, ale w wersji Demo niektóre komendy nie działają poprawnie. Ja mam wersję 1.11.7.3.
Druga rzecz to to że Bascom najprawdopodobniej nie kompiluje całego kodu, tylko tą częśc gdzie zaszły zmiany i to jest przyczyną różnych błędów. Dowód na to, to np. ten sam kod źródłowy skompilowany w różnych plikach, daje inne kody wynikowe oraz inne działanie µkontrolera. Nie znam algorytmów tworzenia kodu w bascomie, ale podejrzewam że to właśnie wina niepełnego kompilowania.

Awatar użytkownika
curylop
-
Posty: 64
Rejestracja: 29 lip 2006, 21:43
Kontakt:

Post autor: curylop » 14 sty 2007, 12:52

dołączyłem pliki do tiny2313


w starszej wersji mi nie wykrywa procka

[ Dodano: 2007-01-14, 14:03 ]
jak napisze program i nacisne F7 to mi wyskakuje: FILE NOT FOUND w wersji 7.7
Załączniki
waż świetlny.rar
(4.23 KiB) Pobrany 316 razy
Ostatnio zmieniony 15 sty 2007, 9:56 przez curylop, łącznie zmieniany 2 razy.

ZbeeGin

Post autor: ZbeeGin » 14 sty 2007, 14:44

Program z załącznika w AVR Studio symuluje się normalnie. Co 200,1ms port jest przesuwany. Zatem nie widzę problemów z programem. Ustawienie: 8MHz clock, ATTiny2313.

Wróć do działającego BASCOM-a i zmień parametr $Crystal jak opisałem wcześniej. Bo przy domyślnym taktowaniu ATTiny2313 program będzie działał 8 razy wolniej, więc zmiany na portach będą widoczne dopiero po 1,6 sek.
curylop pisze:jak napisze program i nacisne F7 to mi wyskakuje: FILE NOT FOUND w wersji 7.7
Najwidoczniej opcje w zakładce Compiler -> Output masz ustawione niewłaściwie.

Awatar użytkownika
curylop
-
Posty: 64
Rejestracja: 29 lip 2006, 21:43
Kontakt:

Post autor: curylop » 15 sty 2007, 10:23

Wgrałem taki program i chodzi. Ale dlaczego ten wcześniejszy nie??

Kod: Zaznacz cały

$regfile = "attiny2313.dat"

$crystal = 8000000

Config Portd = Output
Config Pinb.0 = Input
Config Pinb.1 = Input

Set Portb.0
Set Portb.1

Do
   If Pinb.0 = 0 Then

      Portd = &B00000000


   End If


   If Pinb.1 = 0 Then
      Portd = &B11111111
   End If

Loop
End
[/code]

ODPOWIEDZ