Осциллограф на Atmega8+LCD Nokia5110
|
|
marss70 | Дата: Среда, 18.09.2013, 22:08 | Сообщение # 51 |
Группа: Проверенные
Сообщений: 80
Статус: Offline
| Прикрутил внешний АЦП, частота увеличилась в разы. При входной частоте 20000 гц чётко различимы 2 волны. Соответственно при 40000 видно около 4-5. Осталось синхронизацию дотумкать...
|
|
| |
top | Дата: Четверг, 19.09.2013, 00:12 | Сообщение # 52 |
Группа: Друзья
Сообщений: 146
Статус: Offline
| Фотки в студию))
|
|
| |
marss70 | Дата: Четверг, 19.09.2013, 18:59 | Сообщение # 53 |
Группа: Проверенные
Сообщений: 80
Статус: Offline
| Ды запросто
Сообщение отредактировал marss70 - Четверг, 19.09.2013, 18:59 |
|
| |
top | Дата: Четверг, 19.09.2013, 23:49 | Сообщение # 54 |
Группа: Друзья
Сообщений: 146
Статус: Offline
| Радует глаз, очень круто) 40 кГц! Цифры на дисплее что означают?
|
|
| |
marss70 | Дата: Пятница, 20.09.2013, 08:18 | Сообщение # 55 |
Группа: Проверенные
Сообщений: 80
Статус: Offline
| Цифры означают задержку между отсчётами в микросекундах. Я её ввожу с помощью переменника на вход АЦП микроконтроллера, чтобы низкочастотные сигналы помещались на экране. Сейчас синхрой занимаюсь, вроде забрезжил светик...
|
|
| |
pchela5 | Дата: Понедельник, 07.10.2013, 12:13 | Сообщение # 56 |
Группа: Свой человек
Сообщений: 85
Статус: Offline
| Как продвигаются работы по осциллографу? Можно исходничек с внешним АЦП?
|
|
| |
marss70 | Дата: Понедельник, 07.10.2013, 16:38 | Сообщение # 57 |
Группа: Проверенные
Сообщений: 80
Статус: Offline
| Работы остановились на ожидании более дешёвой внешней АЦП. Какая у меня стоит TLC5540 ну прям кусается. Сейчас заказал ADC1175CIMTC/NOPB в районе 80 рублей ещё куда не шло. А код такой. Применил мегу88 т.к. у неё замечательное свойство выход тактовой частоты на ноге.В архиве вместе с библиотеками работы с дисплеем от Нокии 5110 Код
$regfile = "m88def.dat" $crystal = 20000000 $hwstack = 32 $swstack = 8 $framesize = 48
Dim Adc7 As Word , Adc7_str As String * 4
Dim Xx As Byte Dim Datsingle As Single Dim Dat(300) As Byte
Config Portc.2 = Output 'D/C (pin 4) D3310dc Alias Portc.2
Config Portc.0 = Output 'SCE (pin 5) D3310ce Alias Portc.0
Config Portc.1 = Output 'Reset (pin 8) D3310re Alias Portc.1
Config Portd = Input
Config Portb.0 = Output Takt Alias Portb.0
'Config Portd.5 = Output 'Reset (pin 8) 'Takt Alias Portd.5 Config Adc = Single , Prescaler = Auto , Reference = Avcc
Config Spi = Soft , Dout = Portc.3 , Ss = None , Clock = Portc.4 Spiinit $include "5110init.bas"
Call D3310reset Call D3310init Call D3310clear Call D3310invert Waitms 1
Start Adc
Do
Adc7 = Getadc(7) Adc7 = Adc7 + 1
For Xx = 1 To 84
Dat(xx) = Pind 'Waitus Adc7
Next Xx
For Xx = 1 To 84 Datsingle = Dat(xx) / 6 Dat(xx) = Round(datsingle) 'Dat(xx) = Dat(xx) / 2 Dat(xx) = 47 - Dat(xx) Call D3310addpoint(xx , Dat(xx))1
Next Xx
Waitms 500 Call D3310clear Loop End $include "5110end_rus.bas"
Сообщение отредактировал marss70 - Понедельник, 07.10.2013, 18:43 |
|
| |
pchela5 | Дата: Четверг, 10.10.2013, 17:21 | Сообщение # 58 |
Группа: Свой человек
Сообщений: 85
Статус: Offline
| Т.е. в программе на данный момент не реализована работа с внешним АЦП, как я погляжу? Жаль. Что касается микросхемы, то можно приделать TDA8708 - доставаема в магазинах и недорогая - мне обошлась около 100 руб. Осциллограф на ее основе реализован на PIC но с выводом на компьютер, что не всегда удобно. Вот интересно реализовать на бейсике.
|
|
| |
marss70 | Дата: Четверг, 10.10.2013, 21:30 | Сообщение # 59 |
Группа: Проверенные
Сообщений: 80
Статус: Offline
| Как это не реализован, Dat(xx) = Pind - это и есть считывание. Я думаю, что смутило Adc7 = Getadc(7), но это для регулировки задержки для считывания при низкой входной частоте.
|
|
| |
docent | Дата: Среда, 13.11.2013, 15:19 | Сообщение # 60 |
Группа: Пользователи
Сообщений: 1
Статус: Offline
| вот максимально быстрое чтение порта для баскома. читает за 3 такта. при 20мгц кварц читает с частотой около 6.66мгц. реально сигнал покажет гдето 700кгц для прямоугольника. ekran(0) - это массив отсчетов ацп Dim Ekran(256) As Byte Time1: $asm IN R16, PINA STS {ekran(0)}, R16 IN R16, PINA STS {ekran(1)}, R16 IN R16, PINA STS {ekran(2)}, R16 IN R16, PINA .......................... .......................... ret $end Asm если надо задержки для низкой частоты то можно так Time2: $asm IN R16, PINA STS {ekran(0)}, R16 $end Asm Waitus Timef $asm IN R16, PINA STS {ekran(1)}, R16 $end Asm Waitus Timef $asm IN R16, PINA STS {ekran(2)}, R16 $end Asm Waitus Timef ......
|
|
| |
marss70 | Дата: Пятница, 22.11.2013, 21:45 | Сообщение # 61 |
Группа: Проверенные
Сообщений: 80
Статус: Offline
| docent, вот спасибо, обязательно попробую! Сейчас другим чуть занят(((
|
|
| |