Посчитать импульсы надо и показать сколько
- Реклама
пока нету. Но тут походу обсуждения она может появится. Раньше я не знал как это сделать. Теперь все стало понятно.
Так это не будет проблемой,просто не отнимаете значение пч
У аттини13 5 свободных портов,3 для LM7001,две для кнопок (переключение канала и прием/передача)
по исходнику-я не очень понимаю си,вернее совсем ноль,но!
Вот исходник ваш переделал,попробуйте
typedef unsigned int real ;
typedef unsigned long unreal ;
#include <tiny13a.h>
#include <bcd.h>
#include <delay.h>
//#include <sleep.h>
#define CE PORTB.2 //
#define CL PORTB.1 //
#define DA PORTB.0 //
byte
set, sw_key ;// номер запомненной позиции настройки
unreal
f_tun;
unreal set_frq [4]=
{145000, 145100, 145200, 145300};
byte chan0=0;
byte chan=0;
// Declare your global variables here
void lm7001SendByte(byte k)
{
byte i ;
for (i = 0; i < 8; i++) {
if (k&0x1) DA = 1;
else
DA = 0;
delay_us(3);
CL = 1;
delay_us(3);
CL = 0;
k = k >> 1;
delay_us(3);
DA = 0;
}
}
void write_lm7001(){
real frq;
//frq=(f_tun - 10700) / 25 ;
frq=(f_tun ) / 25 ;
CL = 0; // CL
CE = 1; // CE
delay_us(3);
lm7001SendByte(frq & 0x00FF);
lm7001SendByte((frq & 0xFF00)>>8);
lm7001SendByte(0b10100001+chan); // - 25k
delay_us(3);
CE = 0; // CE
}
/*
void MCU_Off()
{
#asm("sei");
sleep_enable();
powerdown();
#asm("sleep");
}
*/
void blink () // мигаем диодом
{
}
void main(void)
{
// Input/Output Ports initialization
// Port B initialization
// Function: Bit5=In Bit4=In Bit3=Out Bit2=Out Bit1=Out Bit0=Out
DDRB=0b001111;
// State: Bit5=T Bit4=P Bit3=0 Bit2=0 Bit1=0 Bit0=0
PORTB=01000;
sw_key = 0;
chan=chan0; // читаем из еепром номер канала
f_tun = set_frq [chan]; // устанавливаем частоту
write_lm7001 ();
while (1){
// Place your code here
if(PINB.4 == 0){
sw_key = 1;
delay_ms(10);
}
if (sw_key && (PINB.4 ==1)) {
sw_key = 0;
chan++; set=chan;
if (chan>3)
{chan=0;set=0;}
f_tun = set_frq [chan];
write_lm7001 ();
blink ();
}
}
}
Проверил в протеусе,с виду работает
И еще- я не понял что у вас байты отправляются младшим битом вперед,так что ваша запись
lm7001SendByte(0b10100000); // - 25k
правльная,мои извинения
У аттини13 5 свободных портов,3 для LM7001,две для кнопок (переключение канала и прием/передача)
по исходнику-я не очень понимаю си,вернее совсем ноль,но!
Вот исходник ваш переделал,попробуйте
Спойлер
typedef unsigned char byte ;typedef unsigned int real ;
typedef unsigned long unreal ;
#include <tiny13a.h>
#include <bcd.h>
#include <delay.h>
//#include <sleep.h>
#define CE PORTB.2 //
#define CL PORTB.1 //
#define DA PORTB.0 //
byte
set, sw_key ;// номер запомненной позиции настройки
unreal
f_tun;
unreal set_frq [4]=
{145000, 145100, 145200, 145300};
byte chan0=0;
byte chan=0;
// Declare your global variables here
void lm7001SendByte(byte k)
{
byte i ;
for (i = 0; i < 8; i++) {
if (k&0x1) DA = 1;
else
DA = 0;
delay_us(3);
CL = 1;
delay_us(3);
CL = 0;
k = k >> 1;
delay_us(3);
DA = 0;
}
}
void write_lm7001(){
real frq;
//frq=(f_tun - 10700) / 25 ;
frq=(f_tun ) / 25 ;
CL = 0; // CL
CE = 1; // CE
delay_us(3);
lm7001SendByte(frq & 0x00FF);
lm7001SendByte((frq & 0xFF00)>>8);
lm7001SendByte(0b10100001+chan); // - 25k
delay_us(3);
CE = 0; // CE
}
/*
void MCU_Off()
{
#asm("sei");
sleep_enable();
powerdown();
#asm("sleep");
}
*/
void blink () // мигаем диодом
{
}
void main(void)
{
// Input/Output Ports initialization
// Port B initialization
// Function: Bit5=In Bit4=In Bit3=Out Bit2=Out Bit1=Out Bit0=Out
DDRB=0b001111;
// State: Bit5=T Bit4=P Bit3=0 Bit2=0 Bit1=0 Bit0=0
PORTB=01000;
sw_key = 0;
chan=chan0; // читаем из еепром номер канала
f_tun = set_frq [chan]; // устанавливаем частоту
write_lm7001 ();
while (1){
// Place your code here
if(PINB.4 == 0){
sw_key = 1;
delay_ms(10);
}
if (sw_key && (PINB.4 ==1)) {
sw_key = 0;
chan++; set=chan;
if (chan>3)
{chan=0;set=0;}
f_tun = set_frq [chan];
write_lm7001 ();
blink ();
}
}
}
И еще- я не понял что у вас байты отправляются младшим битом вперед,так что ваша запись
lm7001SendByte(0b10100000); // - 25k
правльная,мои извинения
Последний раз редактировалось Novice user Вс фев 20, 2022 00:21:04, всего редактировалось 2 раза.
- Сообщения: 181
- Зарегистрирован: Пт окт 22, 2021 13:50:39
Утверждал что проект рабочий.
Хотя в ampcontrol почти также
значит правильно.
Хотя в ampcontrol почти также
Код: Выделить всё
// Control byte
#define LM7001_CTRL_B0 (1<<0)
#define LM7001_CTRL_B1 (1<<1)
#define LM7001_CTRL_B2 (1<<2)
#define LM7001_CTRL_TB (1<<3)
#define LM7001_CTRL_R0 (1<<4)
#define LM7001_CTRL_R1 (1<<5)
#define LM7001_CTRL_R2 (1<<6)
#define LM7001_CTRL_S (1<<7)
// Set control byte to FM input with 50kHz Fref, (TB = 0, Bi = 0b000, Ri = 0b100, S = 1)
#define LM7001_CTRL_WORD (LM7001_CTRL_S | LM7001_CTRL_R2
Я ошибся,у автора данной темы идет отправка младшим битом вперед,то есть правильно
В исходике выше на 1 частоте будет лог 1 на выв 7,на второй частоте лог 1 будет на выв 8 LM7001,на третьей частоте буде лог 1 на выв 7 и 8 лм-ки,на четвертой частоте будет лог 1 на выв 9 лм-ки
В исходике выше на 1 частоте будет лог 1 на выв 7,на второй частоте лог 1 будет на выв 8 LM7001,на третьей частоте буде лог 1 на выв 7 и 8 лм-ки,на четвертой частоте будет лог 1 на выв 9 лм-ки
- Реклама
- Сообщения: 181
- Зарегистрирован: Пт окт 22, 2021 13:50:39
А сколько теперь здесь бит в посылке будет? lm7001SendByte(0b10100001+chan);
Здесь же только по 8 идёт
for (i = 0; i < 8; i++) {
if (k&0x1) DA = 1;
Здесь же только по 8 идёт
for (i = 0; i < 8; i++) {
if (k&0x1) DA = 1;
- Сообщения: 181
- Зарегистрирован: Пт окт 22, 2021 13:50:39
не только проект , счас это все в железе уже работает, причем давно.Diskovod писал(а):Утверждал что проект рабочий.
Отдельно на приемнике , отдельно на передатчике.
Счас вот появилась возможность , добавить функционал и совместить все в одном МК ат13
Добавлено after 10 minutes 35 seconds:
[uquote="roman.com",url="/forum/viewtopic.php?p=4184114#p4184114"]
не понял... а в чём проблема ? записать частоты в EEPROM ?olegue писал(а):В еепром частоты загонял , тоже был вариант, счас найти его не могу. Но это мало что дает без функционала записии этих частот в режиме работы, а не программирования.
Добавлено after 7 minutes 7 seconds:
подключить всё это к компу... будет прикольный web-SRD приёмник )) [/uquote]
можно подробнее.
для начала я бы все таки рекомендовал заменить шумодав на нормальный - спектральный.
и к нему уже подключать МК...
Добавлено after 5 minutes 17 seconds:
[uquote="olegue",url="/forum/viewtopic.php?p=4185060#p4185060"]можно подробнее.[/uquote]
что подробнее ? ))
можно заставить быстро перестраиваться приёмник по частоте... Получится простой панорамный индикатор... ...
и т.д.

Добавлено after 4 minutes 19 seconds:
а ещё лучше подключить к приёмник к компу... или сразу к Интернету))
тогда можно будет удалённо управлять приёмником по интернету... с трансляцией звука... будет почти WEB-SDR приёмник))
http://websdr.ru/

Добавлено after 1 hour 23 minutes 53 seconds: ваще надо прикладывать полную схему...
LM7001... странный SPI )) нормальный сделать... не судьба))
Добавлено after 1 minute 7 seconds:
исходник...
Добавлено after 2 minutes 48 seconds:
ATtiny13
1K Byte of In-System Programmable Program Memory Flash
64 Bytes In-System Programmable EEPROM
64 Bytes Internal SRAM
...
что-то совсем всего мало)) надо другой МК...

Добавлено after 5 minutes 17 seconds:
[uquote="olegue",url="/forum/viewtopic.php?p=4185060#p4185060"]можно подробнее.[/uquote]
что подробнее ? ))
можно заставить быстро перестраиваться приёмник по частоте... Получится простой панорамный индикатор... ...
и т.д.
Добавлено after 4 minutes 19 seconds:
а ещё лучше подключить к приёмник к компу... или сразу к Интернету))
тогда можно будет удалённо управлять приёмником по интернету... с трансляцией звука... будет почти WEB-SDR приёмник))
http://websdr.ru/
Добавлено after 1 hour 23 minutes 53 seconds: ваще надо прикладывать полную схему...
LM7001... странный SPI )) нормальный сделать... не судьба))
Добавлено after 1 minute 7 seconds:
исходник...
Добавлено after 2 minutes 48 seconds:
ATtiny13
1K Byte of In-System Programmable Program Memory Flash
64 Bytes In-System Programmable EEPROM
64 Bytes Internal SRAM
...
что-то совсем всего мало)) надо другой МК...
roman.com, поясните технологию как подключить МК к компу. А именно к программе sdrSharp. Или дайте ссылку где это объясняется.
подключить МК к ПУ не сложно)) https://www.wiznet.hk/en/ethernet-contr ... w5500.html
написать приложение на ПК не сложно))
передать звук по Интернету не сложно))
как именно подключить МК к программе sdrSharp... не знаю)) в коде программы sdrSharp ещё не разбирался...
написать приложение на ПК не сложно))
передать звук по Интернету не сложно))
как именно подключить МК к программе sdrSharp... не знаю)) в коде программы sdrSharp ещё не разбирался...
- Сообщения: 19495
- Зарегистрирован: Чт фев 20, 2014 18:57:55
[uquote="roman.com",url="/forum/viewtopic.php?p=4185293#p4185293"]ATtiny13
...
что-то совсем всего мало)) надо другой МК...
[/uquote]
пролистал 4 страницы и тоже офигевал от идеи взять обрезанный донельзя мк и пытаться цеплять на него всевозможны расширители... нахрена ? оО
...
что-то совсем всего мало)) надо другой МК...
пролистал 4 страницы и тоже офигевал от идеи взять обрезанный донельзя мк и пытаться цеплять на него всевозможны расширители... нахрена ? оО
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /


