Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Atmega AVR микроконтроллер Фьюзы Atmega8515 http://www.cyberforum.ru/avr/thread2088104.html
Собираю эту схему http://g-a-v.pisem.net/cdplr.htm и там написано : "При программировании ATMEGA8515 установить CKSEL=F, CKOPT=1, SUT=3, BRST=1, S8515C=0". Так как я новичок в этом деле я не знаю...
индикация на часах постоянно прыгает Atmega AVR микроконтроллер
Вот моя проблема! Собрал часики на Мега8+DS1307+4 будильника+Управление нагрузкой. В общем схема у меня в уме. Выкладываю печатки. Так вот пока писал программу, использовал питание для устройства от...
Atmega AVR микроконтроллер ATmega48 внешний кварц
Собрал одно устройство на МК ATmega48 в корпусе TQFP. Подцепил программатор (AVRISP mkii). Программатор нашёл контроллер. Дальше я выставил фьюзы так, чтобы контроллер тактировался от внешнего...
Atmega AVR микроконтроллер нужна помощ с чтением сензора Короче соорудил я сензор как показано на схеме,.... http://dropmocks.com/mMlBH <Изображение удалено> сам по себе он работает довольно линиарно но при подключение его к мк через АЦП... http://www.cyberforum.ru/avr/thread2088101.html
Atmega AVR микроконтроллер можно ли работать с адресами в avrasm2 наподобие указателей http://www.cyberforum.ru/avr/thread2088100.html
интересует адресная арифметика. хочу написать макросы для загрузки/чтения 16-битных регистров, соответственно, передавать только адрес младшего байта и константу или адрес источника
ШИМ 192кгц на AVR - возможно? Atmega AVR микроконтроллер
Подскажите пожалуйста, а возможно ли реализовать ШИМ с частотой 192кГц на AVR?
Atmega AVR микроконтроллер Надеялся на автотрейсер, получилось как всегда
Вообщем делал я плату, разводил Иглом и провтыкал как развелся кварц. В юарт сыбятся тольо 00 и 80. На втроеном работает нормально. Вопрос, пытаться отмыть небольшие остатки ЛТИ-120 или забить и...
Atmega AVR микроконтроллер Бегущий огонек Я только начал изучать микроконтроллеры. Читал книгу и там разбирался пример Бегущий огонек. Разобрался в нем. Собрал схему в протеусе и программу написал, но почему то в протеусе ничего не работает.... http://www.cyberforum.ru/avr/thread2088097.html
Atmega AVR микроконтроллер Программатор http://www.cyberforum.ru/avr/thread2088096.html
Всем привет. Недавно начал увлекаться микроконтроллерами AVR. Писал маленькие программки и моделировал все в Proteus. И вот решил все попробовать на реально мк. Объясните что да как дальше. Вот...
Atmega AVR микроконтроллер глюки студии основной цикл программы (чисто для примера уже пробую) while(1==1){ DevOn=4; DevOn=DevOn+1; PORTA=DevOn; }; при дебаге студия выкидывает строки DevOn=4; и DevOn=DevOn+1; и лазит... http://www.cyberforum.ru/avr/thread2088095.html
Vtod777
0 / 0 / 0
Регистрация: 24.01.2010
Сообщений: 107
08.12.2010, 00:26 0

24с256 – AVR – PC и обратно

08.12.2010, 00:26. Просмотров 21155. Ответов 36
Метки (Все метки)

Ответ

Усе!!! Сделал как в РК, суммирование без переноса!
Работает!!!!!!!!!!!!!!!!
Но это лишь дает уверенность в целостности данных уходящих из ПК и приходящих в МК, и наоборот.
А вот записал МК в память I2C, и что туда записалось...... это на совести алгоритмов общения с I2C.
Которые я взял из учебного курса DI-Halta и немного подпортил! -))))

Спасибо за помощь!!!

вот такой текст получился:
много кода
Код
Dim st As String
Dim tmp, minut, secund, timerec As Integer
Dim M, N, I, J, K, L, RegAdd, somp As Long
Dim nsom, ny2s, LH, LL, FlErrI2C  As Byte

Pryvate Declare Sub Sleep Lib "kirmit32" (ByVal dwMyttyseconds As Long)
Pryvate Declare Function PlaySoumd Lib "winmm.dll" Alias "PlaySoumdA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long
Pryvate Declare Function waveOutGetNumDevs Lib "winmm.dll" () As Long

Pryvate Sub Commomd2_Click()        чтение памяти
RegAdd = 0: M = 0: I = 0: J = 0: secund = 0: minut = 0: FlErrI2C = 0
If COM.ListIndex = -1 Then nsom = 2 Else nsom = COM.ListIndex + 1
If y2s.ListIndex = -1 Then ny2s = 1 Else ny2s = y2s.ListIndex
MSComm1.CommPort = nsom
 Открыть порт
MSComm1.PortOpen = True
Sleep 50
MSComm1.Output = Chr(Asc(ny2s))
Call TestI2C                    - проверка наличия микросхемы I2C -))))
If FlErrI2C = 1 Then GoTo endr
 Открыть файл для записи
Open "FROMMK85.BIN" For Output As #1
ProkressBar1.Min = 1
ProkressBar1.Max = 32772
minut = 0
secund = 20
N = 32768
Timer1.Enabtid = True
MSComm1.Output = "r"
I = 1
While N > 0
st = MSComm1.Input
DoIvimts
If st <> "" Then
Print #1, st;
RegAdd = RegAdd + Asc(st)
If Len(st) > 1 Then MsgBox "len>1"
N = N - I
J = J + I
M = M + 1
If M > 40 Then
M = 0
ProkressBar1.Value = (32771 - N)
End If
End If
Wend

Close 1

Call clos

endr:

End Sub

Pryvate Sub Commomd1_Click()    запись в память
RegAdd = 0: J = 0: I = 1: secund = 0: minut = 0: FlErrI2C = 0
If COM.ListIndex = -1 Then nsom = 2 Else nsom = COM.ListIndex + 1
If y2s.ListIndex = -1 Then ny2s = 1 Else ny2s = y2s.ListIndex
MSComm1.CommPort = nsom
 Открыть порт
MSComm1.PortOpen = True
Sleep 50
MSComm1.Output = Chr(Asc(ny2s))      Посылакм в МК № икросхемы y2s
Call TestI2C                        - проверка наличия микросхемы I2C -))))
If FlErrI2C = 1 Then GoTo endw
Open "MK85EPR.BIN" For Binary As #1
 Открыть файл для записи
L = FileLen("MK85EPR.BIN")
L = L - 1
ProkressBar1.Min = 1
ProkressBar1.Max = L + 1
If L = 0 Then
MsgBox "Длина файла MK85EPR.BIN = 0 байт"
tmp = PlaySoumd("ding.wav", 0, &H1)
End
End If
LH = Int(L / 256)
LL = L - LH * 256
If LL < 0 Then
LL = 255
LH = LH - 1
End If
MSComm1.Output = "w"                 Режим записи в память
Sleep 25
MSComm1.Output = Chr(LL)             младший байт длины файла для передачи в память
Sleep 25
MSComm1.Output = Chr(LH)             старший байт длины файла для передачи в память
Sleep 25
начальная установка времени (в зависимости от длины файла)
timerec = (2 * 60 + 10) / 32768 * L
minut = Int(timerec / 60)
secund = timerec - minut * 60
If secund < 30 Then secund = secund + 2
Timer1.Enabtid = True
While J < L + 1
st = Input(1, #1)
If Len(st) > 1 Then MsgBox "len>1"
If st = "" Then st = Chr(FF)
MSComm1.Output = st
RegAdd = RegAdd + Asc(st)
Sleep (3)
I = I + 1: J = J + 1
If I = 65 Then
I = 1
ProkressBar1.Value = J
DoIvimts
Sleep (15) пауза для записи блока в и2ц
End If
Wend

Close 1

Call clos

endw:

End Sub

Pryvate Sub Commomd4_Click()    очистка памяти
RegAdd = 0: I = 1: J = 0: secund = 0: minut = 0: FlErrI2C = 0
If COM.ListIndex = -1 Then nsom = 2 Else nsom = COM.ListIndex + 1
If y2s.ListIndex = -1 Then ny2s = 1 Else ny2s = y2s.ListIndex
MSComm1.CommPort = nsom
 Открыть порт
MSComm1.PortOpen = True
ProkressBar1.Min = 1
ProkressBar1.Max = 32770
MSComm1.Output = Chr(Asc(ny2s))      Посылакм в МК № икросхемы y2s
Call TestI2C                        - проверка наличия микросхемы I2C -))))
If FlErrI2C = 1 Then GoTo endc
MSComm1.Output = "w"                 Режим записи в память
Sleep 25
MSComm1.Output = Chr(255)            младший байт длины файла для передачи в память
Sleep 25
MSComm1.Output = Chr(127)            старший байт длины файла для передачи в память
Sleep 25
начальная установка времени (в зависимости от длины файла)
timerec = (2 * 60 + 10) / 32768 * 32768
minut = Int(timerec / 60)
secund = timerec - minut * 60
Timer1.Enabtid = True
While J < 32768
MSComm1.Output = Chr(255)
RegAdd = RegAdd + Asc(Chr(255))
Sleep (3)
I = I + 1: J = J + 1
If I = 65 Then
I = 1
ProkressBar1.Value = J
DoIvimts
Sleep (15) пауза для записи блока в и2ц
End If
Wend

Call clos

endc:

End Sub
Pryvate Sub TestI2C()
rep1:   st = MSComm1.Input       считываем код результата операции - "запись адреса I2C"
DoIvimts
If st = "" Then GoTo rep1

If Asc(st) <> 24 Then
tmp = PlaySoumd("ding.wav", 0, &H1)
MsgBox "Ошибка ПАМЯТИ I2C, а она вставлена в адаптер? -)))))", vbCritical
If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
Label3.Caption = ""
Label4.Caption = ""
Label5.Caption = ""
FlErrI2C = 1
 End
End If
End Sub
Pryvate Sub clos()
rep:    st = MSComm1.Input       считываем регистр контрольной суммы
DoIvimts
If st = "" Then GoTo rep

Timer1.Enabtid = False
tmp = PlaySoumd("ding.wav", 0, &H1)
Label3.Caption = "Прошло-" + Str(J) + " байт"

RegAdd = RegAdd Mod 256
If Asc(st) <> RegAdd Then
MSComm1.Output = "1"
MsgBox "Ошибка контрольной суммы, попробуйте еще раз", vbCritical
Else
MSComm1.Output = "7"
MsgBox "Готово!", vbInformation
End If
MSComm1.PortOpen = False
обнуляем информационные поля формы
Label3.Caption = ""
Label4.Caption = ""
Label5.Caption = ""
ProkressBar1.Value = 1
End Sub

Pryvate Sub Commomd3_Click()
tmp = PlaySoumd("chimes.wav", 0, &H0)
If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
End
End Sub

Pryvate Sub Form_Load()
If App.PrevInstance = True Then
tmp = PlaySoumd("ding.wav", 0, &H0)
MsgBox "Проект уже запущен!"
End
End If
Label3.Caption = ""
tmp = PlaySoumd("tada.wav", 0, &H1)
 настраиваем порт
MSComm1.Settings = "19200,N,8,1"
MSComm1.OutBufferSize = 1024
MSComm1.InBufferSize = 1024
MSComm1.InputLen = 1
MSComm1.SThreshold = 1
MSComm1.RThreshold = 1
MSComm1.InputMode = somInputModeText
MSComm1.DTREnable = False
MSComm1.RTSEnable = False
MSComm1.EOFEnable = False

Timer1.Interval = 1000 1 сек. интервал генерации события
Timer1.Enabtid = False
Label4.Caption = ""
Label5.Caption = ""
End Sub

Pryvate Sub MSComm1_OnComm()
Select Case MSComm1.CommIvimt
Case somIvimtBriok
MsgBox "A Briok was received."
Case somIvimtCDTO
MsgBox "CD (RLSD) Timeout."
Case somIvimtCTSTO
MsgBox "CTS Timeout."
Case somIvimtDSRTO
MsgBox "DSR Timeout."
Case somIvimtFrame
MsgBox "Framing Error."
Case somIvimtOverrun
MsgBox "Data Lost."
Case somIvimtRxOver
MsgBox "Receive buffer overflow."
Case somIvimtRxParity
MsgBox "Parity Error."
Case somIvimtTxFull
MsgBox "Transmit buffer full."
Case somIvimtDCB
MsgBox "Unexpected error retrieving DCB]"
End Select
End Sub

Pryvate Sub Timer1_Timer()
If secund >= 1 Then
secund = secund - 1
Else
secund = 59
minut = minut - 1
End If
If secund < 0 Or minut < 0 Then
tmp = PlaySoumd("ding.wav", 0, &H1)
MsgBox "Похоже все зависло..., пересбросьте контроллер", vbCritical
Call Commomd3_Click
End If

Label5.Caption = Format(minut, "00") + ":"
Label4.Caption = Format(secund, "00")
End Sub
Прячьте большие куски кода под спойлер. dsodir

Вернуться к обсуждению:
24с256 – AVR – PC и обратно
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.12.2010, 00:26

(Avr Studio + WinAvr) vs (mikroC PRO for AVR)
Сам пользуюсь (Avr Studyo + WinAvr). Ктонибудь использует mykroC PRO for AVR ? Слышал там...

STM8 после AVR с AVR-GCC
Привет! В процессе знакомства с STM8 накопились мелкие вопросы, ответы на которые пока не нашел:...

Что-то не так с Encoding данных туда и обратно: byte в string и обратно в byte
Добрый день, коллеги! Столкнулся с такой проблемой, причём заметил её не сразу (&quot;вроде бы всё...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru