-
06.07.2007, 00:58 #1
- Регистрация
- 06.07.2007
- Сообщений
- 6
- Поблагодарили
- 0
- Поблагодарил
- 0
Музыкальный звонок, который умеет всё (Z80) не работает
собрав печатку , записав в пзу программу я понял что звонок не работает. Затем разобрав программу я выяснил что это большой косяк . Люди помогите найти автора и дать ему по шарам. Я написал сам короткую программу .Переделал звук в 22Кгц 8 бит . стер первые 160 байтов . вместо 160 байтов записал свою программу в пзу .Воткнул.Все запохало ,но есть косяк во время воспроизведения мелодии еле слышимой слышнен жуткий треск . У меня подозрение на прерывание .Если кто знает как его организовать для 22 кГц . Подскажите!!!
-
06.07.2007, 01:42 #2
- Регистрация
- 14.02.2005
- Адрес
- Санкт-Петербург
- Возраст
- 60
- Сообщений
- 484
- Поблагодарили
- 43
- Поблагодарил
- 11
Внешнее прерывание с частотой 22 кГц на з80? Тактовая какая? 4 МГц? В среднем от 4 до 10 тактов на команду - в прерывании уложиться в пару десятков команд.
Внешний источник для формирования сигналов прерывания есть?... Я там сам глубину промерял! :: Геннадий Завидовский (Санкт-Петербург)
-
06.07.2007, 08:46 #3
- Регистрация
- 29.11.2005
- Адрес
- Тула, Россия
- Возраст
- 45
- Сообщений
- 2,689
- Поблагодарили
- 136
- Поблагодарил
- 8
где вы z80 то нашли7
73. Алексей (RA3POD)
-
06.07.2007, 22:14 #4
- Регистрация
- 06.07.2007
- Сообщений
- 6
- Поблагодарили
- 0
- Поблагодарил
- 0
вот ссылка на схему там и описание автора
www qrz ru/schemes/contribute/beginners/zvonok.shtml печатку разработал по схеме там прерывание наступает по приходу ресет. Проц работает на 4 МГц.
-
06.07.2007, 22:21 #5
- Регистрация
- 29.11.2005
- Адрес
- Тула, Россия
- Возраст
- 45
- Сообщений
- 2,689
- Поблагодарили
- 136
- Поблагодарил
- 8
да туда даже смотреть нечего. да щас делать на Z80 подобно тому что ставить вындовс хр на 286
73. Алексей (RA3POD)
-
07.07.2007, 10:49 #6
- Регистрация
- 14.02.2005
- Адрес
- Санкт-Петербург
- Возраст
- 60
- Сообщений
- 484
- Поблагодарили
- 43
- Поблагодарил
- 11
Прерывание в той схеме приходит в момент нажатия на кнопку, а не от reset.
Да, еще - ОЗУ (оперативной памяти) в той схеме нет, так что пользоваться "классическими" способами программирования тяжело будет.
Скорее всего, можно так - стек настраивается так, чтобы возврат из прерывания возвращал в глухой цикл (с командой HALT, например).
Ну а в прерывании обновлять очередной байт на выходе ЦАП. И ставить на проигрывание пустого блока в случае отсутствия сигнала "играй".
А вообще-то совет - разобраться почему не работает Ваш экземпляр.
Дизассемблированную программу не опубликуете?
По какой литературе учитесь программировать на Z80?Последний раз редактировалось UA1ARN; 07.07.2007 в 10:55.
... Я там сам глубину промерял! :: Геннадий Завидовский (Санкт-Петербург)
-
07.07.2007, 11:31 #7
- Регистрация
- 08.06.2005
- Адрес
- Ставрополь
- Возраст
- 56
- Сообщений
- 313
- Поблагодарили
- 57
- Поблагодарил
- 20
2FLYING: зайди на www.zx.pk.ru , чтобы понять, что не всё так хреново
-
07.07.2007, 11:50 #8
- Регистрация
- 29.11.2005
- Адрес
- Тула, Россия
- Возраст
- 45
- Сообщений
- 2,689
- Поблагодарили
- 136
- Поблагодарил
- 8
лень там читать если честно. мне хватает пиков аврок и 80ц32 ядер для сачстливой жизни.
я так полагаю что з80 тоже на месте не стоял7 что там хоть он щас из себя представляет то расскажите в кратце пожалуйста73. Алексей (RA3POD)
-
08.07.2007, 03:26 #9
- Регистрация
- 06.07.2007
- Сообщений
- 6
- Поблагодарили
- 0
- Поблагодарил
- 0
Программу автора можно дизассемблировать через хорошенькую прогу
Z80 Simulator IDE . Моя программа сейчас к сожелению на работе, будет только во вторник. Принцип действия ей такой ; 1.Посылаем на ир23 цифру 80(выставляя какбы 0 отметку воспроизведения файла)
2. Ставим в режим ожидания (до нажатия кнопки)
3. По приходу прерывания читаем данные по байтно из файла (как описывал автор убираем первые 140 байт, читаем именно то что после)
4. И побайтно посылаем в порт вот такой коротинький алгоритм
С программой автора бы разобраться!?Последний раз редактировалось mksboy; 08.07.2007 в 03:40.
-
16.07.2007, 11:26 #10
- Регистрация
- 06.07.2007
- Сообщений
- 6
- Поблагодарили
- 0
- Поблагодарил
- 0
Моя программа
Вот программа которую я сам разработал под эту схему
Z80 DISASSEMBLER LISTING
Line Addr Opcodes Label Instruction
--------------------------------------------------
0001 0000 F3 DI
0002 0001 3E 80 LD A,80H
0003 0003 D3 7F OUT (7FH),A
0004 0005 FB EI
0005 0006 ED 56 IM 1
0006 0008 76 HALT
0007 0009 00 NOP
0008 000A 00 NOP
0009 000B 00 NOP
0010 000C 00 NOP
0011 000D 00 NOP
0012 000E 00 NOP
0013 000F 00 NOP
0014 0010 00 NOP
0015 0011 00 NOP
0016 0012 00 NOP
0017 0013 00 NOP
0018 0014 00 NOP
0019 0015 00 NOP
0020 0016 00 NOP
0021 0017 00 NOP
0022 0018 00 NOP
0023 0019 00 NOP
0024 001A 00 NOP
0025 001B 00 NOP
0026 001C 00 NOP
0027 001D 00 NOP
0028 001E 00 NOP
0029 001F 00 NOP
0030 0020 00 NOP
0031 0021 00 NOP
0032 0022 00 NOP
0033 0023 00 NOP
0034 0024 00 NOP
0035 0025 00 NOP
0036 0026 00 NOP
0037 0027 00 NOP
0038 0028 00 NOP
0039 0029 00 NOP
0040 002A 00 NOP
0041 002B 00 NOP
0042 002C 00 NOP
0043 002D 00 NOP
0044 002E 00 NOP
0045 002F 00 NOP
0046 0030 00 NOP
0047 0031 00 NOP
0048 0032 00 NOP
0049 0033 00 NOP
0050 0034 00 NOP
0051 0035 00 NOP
0052 0036 00 NOP
0053 0037 00 NOP
0054 0038 F3 DI
0055 0039 21 A0 00 LD HL,00A0H
0056 003C 7E L0002: LD A,(HL)
0057 003D D3 7F OUT (7FH),A
0058 003F 06 0E LD B,0EH
0059 0041 10 FE L0001: DJNZ L0001
0060 0043 23 INC HL
0061 0044 7C LD A,H
0062 0045 FE FF CP 0FFH
0063 0047 C2 3C 00 JP NZ,L0002
0064 004A C7 RST 00H
-
16.07.2007, 11:49 #11
- Регистрация
- 14.02.2005
- Адрес
- Санкт-Петербург
- Возраст
- 60
- Сообщений
- 484
- Поблагодарили
- 43
- Поблагодарил
- 11
Работать должно.
... Я там сам глубину промерял! :: Геннадий Завидовский (Санкт-Петербург)
-
17.07.2007, 11:18 #12
- Регистрация
- 06.07.2007
- Сообщений
- 6
- Поблагодарили
- 0
- Поблагодарил
- 0
-
17.07.2007, 13:46 #13
- Регистрация
- 14.02.2005
- Адрес
- Санкт-Петербург
- Возраст
- 60
- Сообщений
- 484
- Поблагодарили
- 43
- Поблагодарил
- 11
Так и знал! Посмотрите внимательно на схему - там ошибка с схеме ЦАП. И он работает как однобитный (только младший бит имеет значение).
И, кажется, перепутаны местами старший с мдадшим.
Короче, ищите описание и принцип работы ЦАП R-2R (DAC R-2R) и будет Вам просветление.... Я там сам глубину промерял! :: Геннадий Завидовский (Санкт-Петербург)
-
17.07.2007, 15:01 #14
- Регистрация
- 17.02.2007
- Сообщений
- 5
- Поблагодарили
- 0
- Поблагодарил
- 2
Зря вы уважаемый FLYING так не хорошо отзываетесь об Z80 ведь их ещё на руках у народа полно. И чем дальше от столицы тем больше.
Владимир.
-
19.07.2007, 11:14 #15
- Регистрация
- 06.07.2007
- Сообщений
- 6
- Поблагодарили
- 0
- Поблагодарил
- 0
Вообщем картина следующая собрал ЦАП по схеме R-2R . сноминалами 22кОм и 11 кОм.Таже стало чуть получше . Думаю все же задержка не правильно расчитана.
|
Социальные закладки