zapis do pamieci i odczyt po rs232

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
peegy
-
Posty: 27
Rejestracja: 09 paź 2005, 0:38

zapis do pamieci i odczyt po rs232

Post autor: peegy » 01 sie 2006, 0:40

witam
zwracam sie z prosba do Was drodzy uzytkownicy forum elportalu
otoz mam pewien problem ktory meczy mnie okropnie
otoz jak napisac programik w bascomie tak by po odebraniu danych z ukadu dtmfa po wystapieniu przerwania zapisac odebrana cyfre do pamieci procesora (zapisa numer telefonu) przzeznaczony maksymalnie 10 cyfr na numer telfonu oraz jedna komorkie na czas rozmowy.program ma zapamietrac maksymalnie 5 numerow telefonow (10 cyfrowych) oraz czasy trwania ich rozmow.gdy bedzie przekroczona liczba rozmow to ma wyslac komunikat ze pamiec jest pelna.

odczyt pamieci procesora ma byc dostepny poprzez rs232 z pozycji hyperterminala nastepujaco po wcisnieciu z klawiatury komputera np litery "a" ma odczytac zapamietane numery oraz czas . zas gdy wcisniemy litere "b" ma skasowac zawartsc pamieci

bede bardzo wdzieczny za pomoc
mam nadzije ze zbyt zawile nie oisalem problemu

udalo mi sie stworzyc program nastepujacy:

$regfile = "m8def.dat"
$crystal = 8000000
$baud = 9600
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0

'koncowki od optotriakow
Config Pind.6 = Input
Config Pind.7 = Input
'koncowki od dtmfa
Config Pinc.0 = Input
Config Pinc.1 = Input
Config Pinc.2 = Input
Config Pinc.3 = Input

Dim Linia As Byte , Cyfra As Byte , Rozmowa As Bit

On Int1 Cyfrywybrane
Config Int1 = Rising
Enable Interrupts
Enable Int1


Print "Rejestrator rozmow v.2.0"

Do
Linia = Pind.6
Rotate Linia , Left , 1
Linia = Linia Or Pind.7
Select Case Linia
Case 1 : If Rozmowa = 0 Then
Print "X"
Set Rozmowa
Waitms 100
End If
Case 2 : If Rozmowa = 0 Then
Print "Y"
Set Rozmowa
Waitms 100
End If
Case 3 : If Rozmowa = 1 Then
Print "Z"
Reset Rozmowa
Waitms 100
End If
Case Else : If Rozmowa = 0 Then
Print "LineError"
Waitms 100
End If
End Select
Loop
End


' Przerwanie Wywolane Wybraniem Numeru
Cyfrywybrane:
Cyfra = Pinc.0
Rotate Cyfra , Left , 1
Cyfra = Cyfra Or Pinc.1
Rotate Cyfra , Left , 1
Cyfra = Cyfra Or Pinc.2
Rotate Cyfra , Left , 1
Cyfra = Cyfra Or Pinc.3
Select Case Cyfra
Case 0 : Print "D"
Case 1 : Print "1"
Case 2 : Print "2"
Case 3 : Print "3"
Case 4 : Print "4"
Case 5 : Print "5"
Case 6 : Print "6"
Case 7 : Print "7"
Case 8 : Print "8"
Case 9 : Print "9"
Case 10 : Print "0"
Case 11 : Print "*"
Case 12 : Print "#"
Case 13 : Print "A"
Case 14 : Print "B"
Case 15 : Print "C"
Case Else : Print "DtmfError"
End Select
Return


wysyla on na bierzaco wybierany nr. telefonu poprzez rsa a w dalszej kolejnosci ma wlasnie zapamietac numer(jak pisalem wyzej) oraz czas a dopiero po wyborze klawisza z kalwiatury komputera wyslac poprzez hyper terminal zapamietane dane

serdecznie pozdrawiam

[ Dodano: 2006-08-03, 23:10 ]
witam ponownie
please pomozcie drodzy forumowicze
chociaz jak zapisac do pamieci dana i ja odebrac przez rsa w hyperterminalu
ja juz trace nerwy nad tym problemem

z gory dzieki

ODPOWIEDZ