[AVR]Błąd 202

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!
ODPOWIEDZ
Skrzydlaty
Użytkownik
Posty: 126
Rejestracja: 23 wrz 2007, 21:08
Lokalizacja: Krak

[AVR]Błąd 202

Post autor: Skrzydlaty » 29 paź 2007, 0:17

Napisałem prosty programik do wykorzystania ADC w ATMEGA8535:

Kod: Zaznacz cały

$crystal = 16000000
Config Lcdpin = Pin , Db4 = Pinb.2 , Db5 = Pinb.3 , Db6 = Pinb.4 , Db7 = Pinb.5 , E = Pinb.1 , Rs = Pinb.0
Config Lcd = 16 * 2

Config Adc = Single , Prescaler = Auto, Reference = Internal

Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Up

Enable Interrupts
Start Adc
Dim _in As Word
Dim _out As Word
Dim _out_trans As Word
Cls
Pwm1a = 100

Do
_in = Getadc(0)
Pwm1a = _out
_out_trans = _out * 0.0048828125
Cls
Lcd _in : "V in " : _out_trans : "V out"
Loop
Ale wywala mi błąd 202... co jest grane? Jak ustawiam typ procka na 90s8535 to wszystko jest ok, ale dla MEGA8535 już nie....

ZbeeGin

Post autor: ZbeeGin » 29 paź 2007, 6:48

A mógłby kolega pełnym zdaniem błąd przytoczyć? Która wersja kompilatora?

W posiadanych wersjach BASCOM-AVR program się prawidłowo kompiluje:

Kod: Zaznacz cały

$regfile = "m8535.dat"
$crystal = 16000000
Config Lcdpin = Pin , Db4 = Pinb.2 , Db5 = Pinb.3 , Db6 = Pinb.4 , Db7 = Pinb.5 , E = Pinb.1 , Rs = Pinb.0
Config Lcd = 16 * 2

Config Adc = Single , Prescaler = Auto, Reference = Internal

Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Up

Enable Interrupts
Start Adc
Dim _in As Word
Dim _out As Word
Dim _out_trans As Word
Cls
Pwm1a = 100

Do
_in = Getadc(0)
Pwm1a = _out
_out_trans = _out * 0.0048828125
Cls
Lcd _in ; "V in " ; _out_trans ; "V out"         ' nie dwukropki tylko średniki!!!
Loop

Skrzydlaty
Użytkownik
Posty: 126
Rejestracja: 23 wrz 2007, 21:08
Lokalizacja: Krak

Post autor: Skrzydlaty » 29 paź 2007, 10:22

Wysksuje:

Kod: Zaznacz cały

Error: 202   Line: 6   .EQU not found, probably using functions that are not suported by the selected chip [ADCSR]  , in file C:\.....
Wersja Bascoma: 1.11.7.4

Przy wyświetlaniu na LCD faktycznie średniki ale wyświetlanie miałem zaremowane więc nawet sie o to kompilator nie czepiał.

ZbeeGin

Post autor: ZbeeGin » 29 paź 2007, 17:35

A raport kompilacji można zobaczyć? Bo prawdopodobnie mimo ustawień w opcjach kompilatora masz wybrany zły procesor.

Skrzydlaty
Użytkownik
Posty: 126
Rejestracja: 23 wrz 2007, 21:08
Lokalizacja: Krak

Post autor: Skrzydlaty » 29 paź 2007, 18:21

A który to jest ten raport?

Wybrałem w opcjach typ "MEGA8535" a i dołożyłem w pierwszej linijce "$regfile = "m8535.dat"" - za każdym razem wyskakuje tamten błąd.

ZbeeGin

Post autor: ZbeeGin » 29 paź 2007, 20:01

Jest to plik z rozszerzeniem RPT. Przykład:
Report : SKRZYDLATY_ELPORTAL
Date : 10-29-2007
Time : 06:54:22

Compiler : BASCOM-AVR LIBRARY V 1.11.8.9
Processor : M8535
SRAM : 200 hex
EEPROM : 200 hex
ROMSIZE : 2000 hex

ROMIMAGE : 350 hex -> Will fit into ROM
ROMIMAGE : 848 dec
FLASH USED : 10 %
BAUD : 9600 Baud
XTAL : 16000000 Hz
BAUD error : 0.16%

Stack start : 25F hex
Stack size : 20 hex
S-Stacksize : 8 hex
S-Stackstart : 240 hex
Framesize : 18 hex
Framestart : 227 hex
Space left : 443 dec

LCD DB7 : PORTB.5
LCD DB6 : PORTB.4
LCD DB5 : PORTB.3
LCD DB4 : PORTB.2
LCD E : PORTB.1
LCD RS : PORTB.0
LCD mode : 4 bit
Sprawdź jeszcze czy w pliku definicji M8535.dat masz takie linie w sekcji [IO]:

Kod: Zaznacz cały

ACSR	=$08
ADMUX   =$07
ADCSRA  =$06
ADCSR  =$06  ; old name
ADCH    =$05
ADCL    =$04
Jeśli masz możliwość to ściągnij sobie najnowszą wersję BASCOMa i tam dokonaj kompilacji. U mie przechodzi bez kłopotu.

Skrzydlaty
Użytkownik
Posty: 126
Rejestracja: 23 wrz 2007, 21:08
Lokalizacja: Krak

Post autor: Skrzydlaty » 29 paź 2007, 22:06

Raportu kompilacji mi nie tworzy.

W pliku "m8535.dat" nie mam tej lini:

Kod: Zaznacz cały

ADCSR  =$06  ; old name


[ Dodano: 2007-10-30, 14:42 ]
Ok, zamieniłem te linie i działa:)

ODPOWIEDZ