#176 2018-08-02 13:01:00

Green
Учасник
Зареєстрований: 2015-11-08
Повідомлень: 593

Re: Помогите запустить WeMos XI

Прочитать. Просто пишите Serial.print(PMCR, HEX);
Записать: PMCR = 1<<CLKOEN1; и т.п.
Нафига все эти дикие макросы!
"Будьте проще и люди к вам потянутся!"

Неактивний

#177 2018-08-02 13:32:07

renoshnik
Учасник
Зареєстрований: 2017-04-03
Повідомлень: 1,025

Re: Помогите запустить WeMos XI

Green пише:

Прочитать. Просто пишите Serial.print(PMCR, HEX);
Записать: PMCR = 1<<CLKOEN1; и т.п.
Нафига все эти дикие макросы!
"Будьте проще и люди к вам потянутся!"

Дело не в макросе...

#ifndef bit_is_set
#define bit_is_set(sfr, bit) (_SFR_BYTE(sfr) & _BV(bit))  // читаем заданый бит
#endif 

bool BIT;
 
void setup()  { 
Serial.begin(57600);

Serial.println("  Test - PMCR: 0x01  default - 0000 0001 ");
    BIT = bit_is_set(PMCR, PMCE);      Serial.print(BIT);
    BIT = bit_is_set(PMCR, CLKFS);    Serial.print(BIT);
    BIT = bit_is_set(PMCR, CLKSS);    Serial.print(BIT);
//    BIT = bit_is_set(PMCR, WCLKS);    Serial.print(BIT);
  Serial.print("?");
  Serial.print(" ");  
    BIT = bit_is_set(PMCR, OSCKEN);   Serial.print(BIT);
    BIT = bit_is_set(PMCR, OSCMEN); Serial.print(BIT);
  Serial.print("?");
    BIT = bit_is_set(PMCR, RCKEN);    Serial.print(BIT);
    BIT = bit_is_set(PMCR, RCMEN);    Serial.println(BIT);


  } 
 
void loop()  {
delay (5000);	
  //=========================================================     
  }

при компиляции выдает ошибку:

Arduino: 1.8.5 (Windows 7), Плата:"WEMOS XI (Retired)"

In file included from c:\users\admin\appdata\local\arduino15\packages\arduino\tools\avr-gcc\4.8.1-arduino5\avr\include\avr\io.h:99:0,

                 from c:\users\admin\appdata\local\arduino15\packages\arduino\tools\avr-gcc\4.8.1-arduino5\avr\include\avr\pgmspace.h:88,

                 from C:\Program Files (x86)\Arduino\hardware\wemos\XI\cores\lgt8f/Arduino.h:28,

                 from sketch\sketch_aug02a.ino.cpp:1:

C:\Temp\arduino_modified_sketch_368192\sketch_aug02a.ino: In function 'void setup()':

sketch_aug02a:18: error: 'OSCMEN' was not declared in this scope

     BIT = bit_is_set(PMCR, OSCMEN); Serial.print(BIT);

                            ^

exit status 1
'OSCMEN' was not declared in this scope

Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"


Аналогично и с WCLKS, поэтому я и заменил строку на коммет с "?" ...   sad

Неактивний

#178 2018-08-02 13:32:43

Green
Учасник
Зареєстрований: 2015-11-08
Повідомлень: 593

Re: Помогите запустить WeMos XI

К примеру, ваш перевод на 32 мгц.
cli();
CKPR = 1<<CLKPCE;
CLKPR = 0;
sei();
У меня работает несколько дней от 3,7 в. Хотя спокойствия на душе нет.(

Неактивний

#179 2018-08-02 13:41:02

renoshnik
Учасник
Зареєстрований: 2017-04-03
Повідомлень: 1,025

Re: Помогите запустить WeMos XI

Green пише:

К примеру, ваш перевод на 32 мгц.
cli();
CKPR = 1<<CLKPCE;
CLKPR = 0;
sei();
У меня работает несколько дней от 3,7 в. Хотя спокойствия на душе нет.(

http://i.piccy.info/i9/0cc0820e3ed44a58495fcfd1bc4efcac/1533206199/259302/1260586/2018_08_02_133601.jpg


CLKPCE  -  эта переменная определяется !!!!  и у меня переводится прескаллер и работает...
а вот несколько переменных НЕ определяются  sad   sad   sad   в скетче я эти строки закомментировал... и заменил на знак вопроса...

Serial.println("  Test - PMCR: 0x01  default - 0000 0001 ");
    BIT = bit_is_set(PMCR, PMCE);      Serial.print(BIT);
    BIT = bit_is_set(PMCR, CLKFS);    Serial.print(BIT);
    BIT = bit_is_set(PMCR, CLKSS);    Serial.print(BIT);
//    BIT = bit_is_set(PMCR, WCLKS);    Serial.print(BIT);
  Serial.print("?");
  Serial.print(" ");  
    BIT = bit_is_set(PMCR, OSCKEN);   Serial.print(BIT);
//    BIT = bit_is_set(PMCR, OSCMEN); Serial.print(BIT);
  Serial.print("?");
    BIT = bit_is_set(PMCR, RCKEN);    Serial.print(BIT);
    BIT = bit_is_set(PMCR, RCMEN);    Serial.println(BIT);

 
Serial.println("  Test - CLKPR: 0x03  default - 0000 0011 ");
    BIT = bit_is_set(CLKPR, CLKPCE);    Serial.print(BIT);
//  Serial.print("?");
//    BIT = bit_is_set(CLKPR, CLKOEN1);  Serial.print(BIT);
  Serial.print("?");
//    BIT = bit_is_set(CLKPR, CLKOEN0);  Serial.print(BIT);
  Serial.print("?");
  Serial.print("- ");
    BIT = bit_is_set(CLKPR, CLKPS3);    Serial.print(BIT);
    BIT = bit_is_set(CLKPR, CLKPS2);    Serial.print(BIT);
    BIT = bit_is_set(CLKPR, CLKPS1);    Serial.print(BIT);
    BIT = bit_is_set(CLKPR, CLKPS0);    Serial.println(BIT);

Неактивний

#180 2018-08-02 13:45:19

Green
Учасник
Зареєстрований: 2015-11-08
Повідомлень: 593

Re: Помогите запустить WeMos XI

Ну так нету там у него таких наименований бит! Смотрите хедеры.
#define PMCR    (*((volatile unsigned char *)0xf2))
#define RCMEN    0
#define RCKEN    1
#define SCMEN    2
#define OSCKEN    3
#define WCES    4
#define CLKSS   5
#define EXTEN   5
#define CLKFS   6
#define PMCE    7
И не пишите такие портянки с кодом. Всё равно никто не читает.

Неактивний

#181 2018-08-02 13:45:41

renoshnik
Учасник
Зареєстрований: 2017-04-03
Повідомлень: 1,025

Re: Помогите запустить WeMos XI

Green, попробуйте мой скетч с чтением регистров загрузить в свою плату, может у меня сам МК глючит...

Неактивний

#182 2018-08-02 13:49:29

renoshnik
Учасник
Зареєстрований: 2017-04-03
Повідомлень: 1,025

Re: Помогите запустить WeMos XI

Green пише:

Ну так нету там у него таких наименований бит! Смотрите хедеры.
#define PMCR    (*((volatile unsigned char *)0xf2))
#define RCMEN    0
#define RCKEN    1
#define SCMEN    2
#define OSCKEN    3
#define WCES    4
#define CLKSS   5
#define EXTEN   5
#define CLKFS   6
#define PMCE    7
И не пишите такие портянки с кодом. Всё равно никто не читает.


Это капец....  hmm

http://i.piccy.info/i9/0e57bcd4280d1f5e37f95c058e8f5d0f/1533206887/328859/1260586/2018_08_02_134730.jpg


*****

а   CLKPR: 0x03    можете глянуть  ?

Неактивний

#183 2018-08-02 13:55:41

Green
Учасник
Зареєстрований: 2015-11-08
Повідомлень: 593

Re: Помогите запустить WeMos XI

renoshnik пише:

Green, попробуйте мой скетч с чтением регистров загрузить в свою плату, может у меня сам МК глючит...

Ой, да ладно вам! МК норм. У меня никаких замечаний.)

Неактивний

#184 2018-08-02 13:59:20

Green
Учасник
Зареєстрований: 2015-11-08
Повідомлень: 593

Re: Помогите запустить WeMos XI

renoshnik пише:

а   CLKPR: 0x03    можете глянуть  ?

А что смотреть то! 0 - 32, 1 - 16, 2 - 8, 3 - 4 мгц и т.д. Какие вопросы?

Неактивний

#185 2018-08-02 14:04:31

renoshnik
Учасник
Зареєстрований: 2017-04-03
Повідомлень: 1,025

Re: Помогите запустить WeMos XI

Green пише:
renoshnik пише:

а   CLKPR: 0x03    можете глянуть  ?

А что смотреть то! 0 - 32, 1 - 16, 2 - 8, 3 - 4 мгц и т.д. Какие вопросы?


ошибся CLKPR: 0x61 адресс


http://i.piccy.info/i9/bf8ebd949ec27a70b3c0c378f405c5d2/1533208041/56050/1260586/2018_08_02_140605.jpg

Наименование бит...

    BIT = bit_is_set(CLKPR, CLKPCE);    Serial.print(BIT);
//  Serial.print("?");
//    BIT = bit_is_set(CLKPR, CLKOEN1);  Serial.print(BIT);
  Serial.print("?");
//    BIT = bit_is_set(CLKPR, CLKOEN0);  Serial.print(BIT);
  Serial.print("?");
  Serial.print("- ");
    BIT = bit_is_set(CLKPR, CLKPS3);    Serial.print(BIT);
    BIT = bit_is_set(CLKPR, CLKPS2);    Serial.print(BIT);
    BIT = bit_is_set(CLKPR, CLKPS1);    Serial.print(BIT);
    BIT = bit_is_set(CLKPR, CLKPS0);    Serial.println(BIT);

у меня такие в даташите ... соответственно два имени глючат ...

Остання редакція renoshnik (2018-08-02 14:07:59)

Неактивний

#186 2018-08-02 14:06:34

Green
Учасник
Зареєстрований: 2015-11-08
Повідомлень: 593

Re: Помогите запустить WeMos XI

Только компилятор работает не с даташитом, а с хедерами!)

Неактивний

#187 2018-08-02 14:11:03

renoshnik
Учасник
Зареєстрований: 2017-04-03
Повідомлень: 1,025

Re: Помогите запустить WeMos XI

Green пише:

Только компилятор работает не с даташитом, а с хедерами!)


  big_smile   Хе́дер (идиш חדר хе́йдэр — начальная еврейская школа; восходит к ивр. חֶדֶר — комната)

а я наивный с даташитами работаю...  hmm

В PMCR    исправил, теперь все читается !!!!  lol

Засветите, что там в CLKPR   roll

Неактивний

#188 2018-08-02 14:41:14

Green
Учасник
Зареєстрований: 2015-11-08
Повідомлень: 593

Re: Помогите запустить WeMos XI

)) То то я думаю, почему меня именно в эту сторону тянет...
header - хидер точно не подходит, да и неприлично как то, созвучно с пидар.)
Ну а что там может быт в CLKPR? Что записал, то и будет, или нет?)
Специально для вас. CLKPR 0.))

Неактивний

#189 2018-08-02 14:50:53

renoshnik
Учасник
Зареєстрований: 2017-04-03
Повідомлень: 1,025

Re: Помогите запустить WeMos XI

Green пише:

)) То то я думаю, почему меня именно в эту сторону тянет...
header - хидер точно не подходит, да и неприлично как то, созвучно с пидар.)
Ну а что там может быт в CLKPR? Что записал, то и будет, или нет?)
Специально для вас. CLKPR 0.))


А откуда вы взяли это ?

Green пишет:
Ну так нету там у него таких наименований бит! Смотрите хедеры.
#define PMCR    (*((volatile unsigned char *)0xf2))
#define RCMEN    0
#define RCKEN    1
#define SCMEN    2
#define OSCKEN    3
#define WCES    4
#define CLKSS   5
#define EXTEN   5
#define CLKFS   6
#define PMCE    7

в даташите другое записано :

http://i.piccy.info/i9/0e57bcd4280d1f5e37f95c058e8f5d0f/1533206887/328859/1260586/2018_08_02_134730.jpg


С даташитовскими именами у меня были глюки !!!  сейчас заменил НА ВАШИ ИМЕНА переменные и все отлично читается !!!!

Теперь нужны имена ПРАВИЛЬНЫЕ в регистре CLKPR: 0x61

даташит выдает следующее:

http://i.piccy.info/i9/bf8ebd949ec27a70b3c0c378f405c5d2/1533208041/56050/1260586/2018_08_02_140605.jpg

и два имени у меня глючат ,,,  sad

Неактивний

#190 2018-08-02 17:27:43

Green
Учасник
Зареєстрований: 2015-11-08
Повідомлень: 593

Re: Помогите запустить WeMos XI

renoshnik пише:

А откуда вы взяли это ?

Green пишет:
Ну так нету там у него таких наименований бит! Смотрите хедеры.
#define PMCR    (*((volatile unsigned char *)0xf2))
#define RCMEN    0
#define RCKEN    1
#define SCMEN    2
#define OSCKEN    3
#define WCES    4
#define CLKSS   5
#define EXTEN   5
#define CLKFS   6
#define PMCE    7

в даташите другое записано :

Ну как откуда? Я ж написал!
На заборе х.й написано и что?

Неактивний

#191 2018-08-02 17:42:49

renoshnik
Учасник
Зареєстрований: 2017-04-03
Повідомлень: 1,025

Re: Помогите запустить WeMos XI

Green пише:
renoshnik пише:

А откуда вы взяли это ?

Green пишет:
Ну так нету там у него таких наименований бит! Смотрите хедеры.
#define PMCR    (*((volatile unsigned char *)0xf2))
#define RCMEN    0
#define RCKEN    1
#define SCMEN    2
#define OSCKEN    3
#define WCES    4
#define CLKSS   5
#define EXTEN   5
#define CLKFS   6
#define PMCE    7

в даташите другое записано :

Ну как откуда? Я ж написал!
На заборе х.й написано и что?


просто я не понял (т.к. не специалист) " Смотрите хедеры. " где это.  Ткните пожалуйста  smile

Остання редакція renoshnik (2018-08-02 17:46:50)

Неактивний

#192 2018-08-02 18:50:19

Вячеслав Азаров
Учасник
Зареєстрований: 2017-05-25
Повідомлень: 1,732

Re: Помогите запустить WeMos XI

renoshnik пише:

... просто я не понял (т.к. не специалист) " Смотрите хедеры. " где это.  Ткните пожалуйста  smile

В установочном каталоге Ардуино ищите, в ветвях ../hardware/LGT8F/cores/lgt8f/***.h , или как-то наподобии.

Неактивний

#193 2018-08-02 20:48:27

renoshnik
Учасник
Зареєстрований: 2017-04-03
Повідомлень: 1,025

Re: Помогите запустить WeMos XI

Вячеслав Азаров пише:
renoshnik пише:

... просто я не понял (т.к. не специалист) " Смотрите хедеры. " где это.  Ткните пожалуйста  smile

В установочном каталоге Ардуино ищите, в ветвях ../hardware/LGT8F/cores/lgt8f/***.h , или как-то наподобии.

Спасибо. Интуитивно подозревал, что где-то там, только ковырял файл HID.cpp а оказалось совсем рядом.

Нашел три файла и в каждом разные значения...

lgt88a.h
#define PMCR	(*((volatile unsigned char *)0xf2))
#define RCMEN		0
#define RCKEN		1
#define SCMEN		2
#define SCKEN		3
#define WCES    	4
#define EXTEN   	5
#define LFEN    		6
#define PMCE		7

//#define CLKPR	(*(volatile unsigned char *)0x61)
//#define CLKPCE	7
#define CLKOE		5
#define CLKOE1		6
#define CLKOE0		5
//#define CLKPS3	3
//#define CLKPS2	2
//#define CLKPS1	1
//#define CLKPS0	0
//#define CLKPS	0


lgtx8e.h
#define PMCR	(*((volatile unsigned char *)0xf2))
#define RCMEN		0
#define RCKEN		1
#define SCMEN		2
#define OSCKEN	3
#define WCES    	4
#define CLKSS  	 	5
#define EXTEN   	5
#define CLKFS   		6
#define PMCE		7

// CLKPR
#define CLKOE		5
#define CLKOE1		6
#define CLKOE0		5

#define VDTCR	(*((volatile unsigned char *)0x62))
#define VDTCE		7
#define SWRSTN	6
#define VSEL		1
#define	VDTEN		0


lgtx8p.h
#define PMCR	(*((volatile unsigned char *)0xF2))
#define PMCE		7
#define CLKFS		6
#define CLKSS		5
#define WCLKS		4
#define WCES		4
#define OSCKEN	3
#define OSCMEN	2
#define RCKEN		1
#define RCMEN		0

// Bits of CLKPR
#define WCE		7
#define CLKOE1		6 
#define CLKOE0		5
#define CLKOE		5 

взял значения из файлов :

lgtx8e.h      #define PMCR    (*((volatile unsigned char *)0xf2)) 
lgt88a.h      //#define CLKPR    (*(volatile unsigned char *)0x61)


теперь компилятор не ругается


#ifndef bit_is_set
#define bit_is_set(sfr, bit) (_SFR_BYTE(sfr) & _BV(bit))  // читаем заданый бит
#endif 
 
bool BIT;
 
void setup()  { 
Serial.begin(57600);
/*		lgtx8e.h
#define PMCR    (*((volatile unsigned char *)0xf2))  
#define RCMEN    	0
#define RCKEN   	1
#define SCMEN    	2
#define OSCKEN    	3
#define WCES    	4
#define CLKSS   	5
#define EXTEN   	5
#define CLKFS   	6
#define PMCE    	7
 */
Serial.println("   ");
Serial.println("  Test - PMCR: 0x01  default - 0000 0001 ");
Serial.print("  Test - PMCR: 0x01  real   -  ");
    BIT = bit_is_set(PMCR, PMCE);      	Serial.print(BIT);
    BIT = bit_is_set(PMCR, CLKFS);    	Serial.print(BIT);
    BIT = bit_is_set(PMCR, CLKSS);    	Serial.print(BIT);
    BIT = bit_is_set(PMCR, WCES);    	Serial.print(BIT);
										Serial.print(" ");  
    BIT = bit_is_set(PMCR, OSCKEN);   	Serial.print(BIT);
    BIT = bit_is_set(PMCR, SCMEN); 		Serial.print(BIT);
    BIT = bit_is_set(PMCR, RCKEN);    	Serial.print(BIT);
    BIT = bit_is_set(PMCR, RCMEN);    	Serial.println(BIT);

/*		lgt88a.h
//#define CLKPR	(*(volatile unsigned char *)0x61)
//#define CLKPCE	7
#define CLKOE		5
#define CLKOE1		6
#define CLKOE0		5
//#define CLKPS3	3
//#define CLKPS2	2
//#define CLKPS1	1
//#define CLKPS0	0
//#define CLKPS		0

 */	
Serial.println("   ");
Serial.println("  Test - CLKPR: 0x03 default - 0000 0011 ");
Serial.print("  Test - CLKPR: 0x03 real   -  ");
    BIT = bit_is_set(CLKPR, CLKPCE);    Serial.print(BIT);
	BIT = bit_is_set(CLKPR, CLKOE1);  	Serial.print(BIT);
	BIT = bit_is_set(CLKPR, CLKOE0);  	Serial.print(BIT);
										Serial.print("- ");					
    BIT = bit_is_set(CLKPR, CLKPS3);    Serial.print(BIT);
    BIT = bit_is_set(CLKPR, CLKPS2);    Serial.print(BIT);
    BIT = bit_is_set(CLKPR, CLKPS1);    Serial.print(BIT);
    BIT = bit_is_set(CLKPR, CLKPS0);    Serial.println(BIT);
	
  } 
 
void loop()  {
  //=========================================================     
  }


 
  Test - PMCR: 0x01  default - 0000 0001
  Test - PMCR: 0x01  real   -  0000 0011
   
  Test - CLKPR: 0x03 default - 0000 0011
  Test - CLKPR: 0x03 real   -  000- 0001

Неактивний

#194 2018-08-03 01:27:38

Green
Учасник
Зареєстрований: 2015-11-08
Повідомлень: 593

Re: Помогите запустить WeMos XI

Да, сообщения у вашего теста ну очень информативные.)))

Остання редакція Green (2018-08-03 01:27:53)

Неактивний

#195 2018-08-03 06:34:43

renoshnik
Учасник
Зареєстрований: 2017-04-03
Повідомлень: 1,025

Re: Помогите запустить WeMos XI

Green пише:

Да, сообщения у вашего теста ну очень информативные.)))

Задача была прочитать состояние регистра и контролировать изменение.

Правда смущает в регистре PMCR что RCMEN = 1 и RCKEN = 1 помоему в регистр RMCR(3-0) должна быть
только одна единица.

Неактивний

#196 2018-08-03 09:31:19

Green
Учасник
Зареєстрований: 2015-11-08
Повідомлень: 593

Re: Помогите запустить WeMos XI

По моему в PMCR может быть что хош, только что бы выполнилось желаемое действие нужно выполнить определённую последовательность. Причём быстренько.)

Неактивний

#197 2018-08-03 11:16:12

renoshnik
Учасник
Зареєстрований: 2017-04-03
Повідомлень: 1,025

Re: Помогите запустить WeMos XI

Green пише:

По моему в PMCR может быть что хош, только что бы выполнилось желаемое действие нужно выполнить определённую последовательность. Причём быстренько.)

Странно, у меня перестал изменяться прескаллер... на всех трех платах... sad

Неактивний

#198 2018-08-03 11:40:12

Green
Учасник
Зареєстрований: 2015-11-08
Повідомлень: 593

Re: Помогите запустить WeMos XI

Я уже давал образец. Попробуйте.
cli();
CKPR = 1<<CLKPCE;
CLKPR = 0;
sei();

Неактивний

#199 2018-08-03 12:26:22

renoshnik
Учасник
Зареєстрований: 2017-04-03
Повідомлень: 1,025

Re: Помогите запустить WeMos XI

Green пише:

Я уже давал образец. Попробуйте.
cli();
CKPR = 1<<CLKPCE;
CLKPR = 0;
sei();


Пробовал.  sad
Странно, что ранее все работало менялось и блинк чаще моргал, а теперь виснет... на всех трех платах.

CKPR = 1<<CLKPCE   эта строка правильная ? Компилятор ругается, заменил на CLKPR = 1<<CLKPCE

*******
За то две платы начали адекватно работать и программироваться при 5 Вольтах ( третья только 3.3В принимает )

Остання редакція renoshnik (2018-08-03 12:29:49)

Неактивний

#200 2018-08-03 13:01:16

Green
Учасник
Зареєстрований: 2015-11-08
Повідомлень: 593

Re: Помогите запустить WeMos XI

Ну да, конечно же CLKPR.)
У меня PMCR = 0x13.

Остання редакція Green (2018-08-03 14:01:05)

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму