Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Dziwne zachowanie 89C4051 - kompilacja Bascom - HELP?

robiw
-
-
Posty:34
Rejestracja:21 wrz 2005, o 12:36
Lokalizacja:Gniezno
Dziwne zachowanie 89C4051 - kompilacja Bascom - HELP?

Postautor: robiw » 21 paź 2005, o 12:41

Witajcie.
Moje pytanie dotyczy dziwnego zachowania się procka 89C4051 ze skompilowanym w Bascomie programie: w programie używam zmiennej Temp, którą inicjuję przed główną pętlą Do Loop programu "Temp = 25" a przy pierwszym wywołaniu w programie ma nie wiadomo dlaczego wartość 105 (choć nie była zmieniana). Nie wspomnę już o tym, że port P1.6 na chwilę "przybiera" wartość "1" w czasie trwania programu choć jest także inicjowany jako "0" i nie zmieniany.
Czy to może być efekt braku RAMu itp - kompilator nie zgłasza żadnych błędów? Kod wynikowy ma 3.5kB, program kompiluję z dyrektywą $Large, używam 2 timerów a lista zmiennych i nagłówek przedstawia się następująco:

$large
$crystal = 11059000
Config Timer1 = Timer , Gate = Internal , Mode = 1
Config Timer0 = Timer , Gate = Internal , Mode = 1
Enable Interrupts
Load Timer1 , 4150
On Timer1 Timer1_int
Enable Timer1
Load Timer0 , 4150
On Timer0 Timer0_int
Enable Timer0

Dim X As Byte
Dim Z As Byte
Dim Pomocnicza As Byte
Dim Napis As String * 10
Dim Danaprocedury As Byte
Dim Pokazuje As Bit
Dim Petle As Byte
Dim Czas_pomiaru As Byte
Dim Start_pomiar As Bit
Dim Temp As Byte
Dim Temp_1wire As Byte
Dim Auto_klima As Bit
Dim Wlaczylem As Bit
Dim Welcome As Bit
Dim Ds1820(2) As Byte
Dim Podano_napiecie As Bit
Dim Przekaznik_on As Bit

Declare Sub Mydelay
Declare Sub Power_on_test
Declare Sub Sendi2cdata(danaprocedury As Byte)
Declare Sub Wyslij_napis
Declare Sub Wyczysctid
Declare Sub Sprawdz_aa
Declare Sub Przywroc_aa


'SCL to P3.0 , SDA to P3.1 , MRQ to P3.2
Scl Alias P3.0
Sda Alias P3.1
Mrq Alias P3.2
Aa Alias P1.3
Wew_aa Alias P1.2
T_p Alias P1.5
T_m Alias P1.4
Przekaznik Alias P1.6
Keyon Alias P1.7
Termometr Alias P1.0
Buzzer Alias P3.3

' Konfiguracja magistrali 1-wire
Config 1wire = Termometr

'-- START PROGRAMU -- START PROGRAMU --
Start Timer0
Call Power_on_test
Pokazuje = 0
Temp_1wire = 19
Auto_klima = 0
Welcome = 1
Wew_aa = 0
' Zerujemy inne zmienne
Czas_pomiaru = 0
Start_pomiar = 0
Podano_napiecie = 0
Przekaznik = 0
Buzzer = 0
Wlaczylem = 0
Przekaznik_on = 0
Temp = 22

Do
.......
Loop
end

Uprzejmie proszę o sugestie... robiw

Wróć do „Projektowanie PCB, programy EDA, CAD, narzędziowe”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 29 gości