Easyelectronics.ru

Электроника для всех
Текущее время: 22 сен 2019, 13:39

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 86 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Re: Smart Fan Timer
СообщениеДобавлено: 02 авг 2018, 16:46 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2015, 17:41
Сообщения: 2599
Откуда: Русь, Новороссийск
NStorm, благодарю.
Перепаяю.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Smart Fan Timer
СообщениеДобавлено: 02 авг 2018, 18:20 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2015, 17:41
Сообщения: 2599
Откуда: Русь, Новороссийск
evsi писал(а):
Советую переключиться обратно на master и повторить попытку.
Код изначально писался на рабочей машине. Оттуда и создавался и заполнялся гитхаб. Оттуда был сделан бренч adc_Vlady.

На флешке тоже принёс с работы домой код бренча adc_Vlady, подсунул его АтмелСтудии, огрёб свои ошибки и поправил сколько мог код.

Теперь мне надо исправленный код выложить на гитхаб в adc_Vlady.

Поставил и проинициализировал гит на домашней машине.
Клоном получил код из мастера.
Пытаюсь получить код adc_Vlady (чтобы поменять там файлы и закачать их обратно в гитхаб в ветку adc_Vlady)
И дальше какой-то странный затык:

Show


Последний раз редактировалось VladyMile 02 авг 2018, 18:32, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Smart Fan Timer
СообщениеДобавлено: 02 авг 2018, 18:25 
Старожил
Аватара пользователя

Зарегистрирован: 27 мар 2015, 04:10
Сообщения: 1931
Откуда: Харьков
Вы не верно понимаете как работает ГИТ.
У него есть удаленный remote репозиторий, в вашем случае это гитхаб. Через него вы должны обмениваться своим кодом даже с сами собой. Т.е. вам нужно было сделать так:
Создать бранч локально.
сделать в бранче изменения
закомитить в локальный бранч
запушить изменения в удаленный репозиторий
затем на другой машине:
если нет там вообще репы то сделать git clone ...
если есть и вы в мастере то сделать git pull (можно добавлять и all но обычно этого не нужно, должно все затянуться и так)
если не в мастере то лучше переключится на мастер но можно и не переключаться а сделать тот же git pull но могут быть конфликты.

дальше переключится на свой бранч git checkout [branch]
ну и дальше уже работать с брачнем как обычно.
не забывать пушить в remote

таскать на флешке - это зло и чревато косяками


Последний раз редактировалось alexsam 02 авг 2018, 18:28, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Smart Fan Timer
СообщениеДобавлено: 02 авг 2018, 18:27 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 2471
NStorm писал(а):
Код:
/******************************************************************************************
* Битовые макросы */
#define SetBit(reg, bit)      reg |= (1<<bit);
#define ClearBit(reg, bit)      reg &= (~(1<<bit));
#define SwitchBit(reg, bit)      reg ^= (1<<bit);
#define BitIsSet(reg, bit)      ((reg & (1<<bit)) != 0);
#define BitIsClear(reg, bit)           ((reg & (1<<bit)) == 0);

Полагаю точки з запятыми в конце, все-таки, тут лишние.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Smart Fan Timer
СообщениеДобавлено: 02 авг 2018, 18:43 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2015, 17:41
Сообщения: 2599
Откуда: Русь, Новороссийск
alexsam писал(а):
затем на другой машине:
если нет там вообще репы то сделать git clone ...
если есть и вы в мастере то сделать git pull (можно добавлять и all но обычно этого не нужно, должно все затянуться и так)
если не в мастере то лучше переключится на мастер но можно и не переключаться а сделать тот же git pull но могут быть конфликты.

дальше переключится на свой бранч git checkout [branch]
ну и дальше уже работать с брачнем как обычно.
не забывать пушить в remote

Я делал и клон, и пулл: мастер появляется, а мой бренч - нет. Хотя в браузере он отлично виден.
Код:
User@VEGA MINGW32 /d/Vlady/RadioAmateur/Git/Smart-Fan-Timer (master)
$ git pull
Already up to date.

User@VEGA MINGW32 /d/Vlady/RadioAmateur/Git/Smart-Fan-Timer (master)
$ git branch
* master


Все операции 100 раз повторил и заново ставил/сносил - всё равно нету моего бренча.

Надо успокоиться, а то так можно и запить...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Smart Fan Timer
СообщениеДобавлено: 02 авг 2018, 18:56 
Старожил
Аватара пользователя

Зарегистрирован: 27 мар 2015, 04:10
Сообщения: 1931
Откуда: Харьков
так а где
git checkout adc_Vlady
?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Smart Fan Timer
СообщениеДобавлено: 02 авг 2018, 18:57 
Старожил
Аватара пользователя

Зарегистрирован: 27 мар 2015, 04:10
Сообщения: 1931
Откуда: Харьков
Цитата:
Alexs-MacBook-Pro:test alex$ git clone https://github.com/VladyMile/Smart-Fan-Timer.git
Cloning into 'Smart-Fan-Timer'...
remote: Counting objects: 24, done.
remote: Compressing objects: 100% (15/15), done.
remote: Total 24 (delta 9), reused 24 (delta 9), pack-reused 0
Unpacking objects: 100% (24/24), done.
Alexs-MacBook-Pro:test alex$ cd Smart-Fan-Timer/
Alexs-MacBook-Pro:Smart-Fan-Timer alex$ git checkout adc_Vlady
Branch adc_Vlady set up to track remote branch adc_Vlady from origin.
Switched to a new branch 'adc_Vlady'
Alexs-MacBook-Pro:Smart-Fan-Timer alex$
Alexs-MacBook-Pro:Smart-Fan-Timer alex$ git status
On branch adc_Vlady
Your branch is up-to-date with 'origin/adc_Vlady'.

nothing to commit, working tree clean
Alexs-MacBook-Pro:Smart-Fan-Timer alex$

все отлично


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Smart Fan Timer
СообщениеДобавлено: 02 авг 2018, 19:04 
Старожил

Зарегистрирован: 08 авг 2013, 09:43
Сообщения: 2227
evsi писал(а):
Полагаю точки з запятыми в конце, все-таки, тут лишние.

Да, вы правы. Проглядел "артефакт".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Smart Fan Timer
СообщениеДобавлено: 02 авг 2018, 19:25 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 2471
VladyMile писал(а):
Хотя в браузере он отлично виден.

Рекомендую: https://www.gitkraken.com/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Smart Fan Timer
СообщениеДобавлено: 03 авг 2018, 08:25 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2015, 17:41
Сообщения: 2599
Откуда: Русь, Новороссийск
alexsam писал(а):
так а где git checkout adc_Vlady?
Так вон же он (это после клона):
Код:
$ git checkout adc_Vlady
error: pathspec 'adc_Vlady' did not match any file(s) known to git.
Кажется, я знаю свою ошибку. Сегодня вечером проверю.
Как раз буду на нотбук приживлять Гит (готовлюсь к отпуску) и пройду все шаги начисто.
evsi писал(а):
Рекомендую: https://www.gitkraken.com/
О, обязательно попробую.
Хотя к командной строке отношусь лояльно - UNIX-like (у нас в сообществе - "юлайки"), бывает, использую и по работе, и по жизни.


Попутный (и самый главный вопрос!) вопрос: могу ли я просто скопировать в гитовую папку с проектом файлы, которые я исправлял где-то в другом каталоге, чтобы выложить их на гитхаб?

Поясняю.
У меня есть папка D:\Vlady\RadioAmateur\Git\Smart-Fan-Timer, которая "гит".
И у меня есть папка D:\Vlady\RadioAmateur\MyProjects\Smart-Fan-Timer, в которой происходит вся "боевая" работа - АтмелСтудио, компиляция, Протеус и т.п.
Могу ли я из "боевой" папки просто скопировать изменённые файлы в локальную гитовую папку (чтобы потом синхронизироваться с гитхабом)?


UPD: Отвечаю сам - могу скопировать.
Получилось изменить файл в своей ветке и "закачать" его в гитхаб.
Мужики, благодарю за помощь.
С гитом вроде разобрался.

Теперь всё внимание коду.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Smart Fan Timer
СообщениеДобавлено: 03 авг 2018, 12:21 
Старожил
Аватара пользователя

Зарегистрирован: 27 мар 2015, 04:10
Сообщения: 1931
Откуда: Харьков
Вы запутались в трех соснах :)
Вложение:
2018-08-03_1015.png
2018-08-03_1015.png [ 73.09 Кб | Просмотров: 1008 ]

Вы находитесь в папке
/d/Vlady/RadioAmateur/Git
Делаете там git remote add origin https://github.com/VladyMile/Smart-Fan-Timer.git
У вас же сразу ошибка вывалилась fatal: remote origin already exists.
А вы видимо думаете что у вас прилинковалась ваша репа :)
Сделайте git status в ваше папке /d/Vlady/RadioAmateur/Git и увидите в ней уже есть какой-то гит проект.
А чтоб узнать какой - сделайте git config --get remote.origin.url
Вам внутри папки Git нельзя уже ничего клонировать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Smart Fan Timer
СообщениеДобавлено: 03 авг 2018, 12:24 
Старожил
Аватара пользователя

Зарегистрирован: 27 мар 2015, 04:10
Сообщения: 1931
Откуда: Харьков
Посмотрите мои шаги, и сделайте то же самое только в папке где у вас ничего не склонировано.

UPD на счет копирования - можно конечно, просто нужно быть внимательным чтоб не скопировать файлик .git в котором настройки иначе можно получить ворох проблем.

А вообще практика такая что сразу боевую папку нужно натравлять на гит, потом делаете git status и получаете список файлов, которые вы поменяли, git diff и получаете конкретные изменения по файлам.
Очень удобно и не нужно парится с копированием.
А чтоб не комитить все файлы, можно добавлять в коммит их по одному или пачками так:
git add [file] [file] [file]
т.е. перечислять что именно комитить


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Smart Fan Timer
СообщениеДобавлено: 03 авг 2018, 12:54 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2015, 17:41
Сообщения: 2599
Откуда: Русь, Новороссийск
Благодарю.
Теперь идею гита я осознал.
Теперь надо натравить гит на боевую папку.
Ссыкотно и непонятно что получится с основной и прочими ветками...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Smart Fan Timer
СообщениеДобавлено: 03 авг 2018, 13:00 
Старожил
Аватара пользователя

Зарегистрирован: 27 мар 2015, 04:10
Сообщения: 1931
Откуда: Харьков
А ничего страшного не получится до тех пор, пока не сделаете git commit... и git push :)
И то, даже если вы запушите не то что нужно, всегда можно сделать git revert :)
Вот бы и в жизни так было... засунул голову в пасть тигрику, а он ее закрыл... life revert... и норм ))))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Smart Fan Timer
СообщениеДобавлено: 03 авг 2018, 15:16 
Старожил

Зарегистрирован: 19 мар 2013, 19:37
Сообщения: 2619
Откуда: Санкт-Петербург
VladyMile, прежде, чем натравливать git на боевую папку - удалите из неё все файлы, созданные при сборке (project cleaanup из среды или make clean, если у вас нормально написанный мейкфайл, а потом ещё лично проверить), будет проще. А после того, как добавите нужные - стОит скомпилировать и написать .gitignore, чтобы про весь мусор от компиляции git даже не думал.

Ну и лично я предпочитаю всё же пользоваться не только консольным git, но и SourceTree - в нём удобнее будет просмотреть список новых файлов и добавить нужные в git, а ненужные в ignore.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Smart Fan Timer
СообщениеДобавлено: 03 авг 2018, 15:20 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 2471
aamonster писал(а):
VladyMile, прежде, чем натравливать git на боевую папку - удалите из неё все файлы, созданные при сборке (project cleaanup из среды или make clean, если у вас нормально написанный мейкфайл, а потом ещё лично проверить), будет проще. А после того, как добавите нужные - стОит скомпилировать и написать .gitignore, чтобы про весь мусор от компиляции git даже не думал.

.gitignore лучше сразу написать. И гитхаб, если не ошибаюсь, умеет его генерировать.
aamonster писал(а):
Ну и лично я предпочитаю всё же пользоваться не только консольным git, но и SourceTree - в нём удобнее будет просмотреть список новых файлов и добавить нужные в git, а ненужные в ignore.

Я там выше упоминал gitkraken. Как визуальный инструмент для работы с гитом он, пожалуй, самое толковое, что я видел.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Smart Fan Timer
СообщениеДобавлено: 03 авг 2018, 17:16 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2015, 17:41
Сообщения: 2599
Откуда: Русь, Новороссийск
alexsam писал(а):
Вот бы и в жизни так было... засунул голову в пасть тигрику, а он ее закрыл... life revert... и норм ))))
А вы спросите у пешеходов, как они сохраняются перед переходом дороги по зебре?
И идёт такая не глядя и в наушниках.
Как я обожаю подъехать поближе и нажать на гашетку долгим гудком... - всё хочу, чтобы какая-то хоть раз реально обосралась (с коричневыми брызгами!) под запись на видеорегистратор....

Благодарю всех за помощь с гитхабом.
Дальше я с ним в фоновом режиме и с вашими подсказками разберусь.

Если у кого-то есть предложения по исправлению кода (ветка adc_Vlady), то для того я вас в эту тему и звал ;)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Smart Fan Timer
СообщениеДобавлено: 03 авг 2018, 17:26 
Старожил

Зарегистрирован: 08 авг 2013, 09:43
Сообщения: 2227
Код запушили обновленный туда?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Smart Fan Timer
СообщениеДобавлено: 03 авг 2018, 19:52 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2015, 17:41
Сообщения: 2599
Откуда: Русь, Новороссийск
Да. Утром. В ветке adc_Vlady


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Smart Fan Timer
СообщениеДобавлено: 06 авг 2018, 14:22 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2015, 17:41
Сообщения: 2599
Откуда: Русь, Новороссийск
Удаётся справиться с Гитхабом, но пока не быстрее, чем с шестого раза :)
Ну да набью руку со временем.

А пока вопрос по организации переменных
Есть у меня
Код:
static u08 ADC_State = LapTime;      // состояние и вход АЦП

volatile u08 ADC_Value[ADC_INPUTS];   // массив, в который АЦП сбрасывает результат по каждому
                           // входу отдельно; у нас пока только один вход "Время"/LapTime;
                           // при инициализации LapTime ставится в максимум

Они определяются в adc.c, указаны как экстерны в adc.h
Код:
extern static u08 ADC_State = LapTime;      // дефолтное состояние и вход АЦП

extern volatile u08 ADC_Value[ADC_INPUTS];   // массив, в который АЦП сбрасывает результат по
                                 // каждому входу отдельно; у нас пока только один
                                 // вход "Время"/LapTime; при инициализации LapTime
                                 // ставим в максимум
А ещё они используются в обработчике прерывания в main.c
Код:
//-----------------------------------------
//   Function name :   ISR (ADC_vect)
//   Returns :      нет
//   Parameters :   динамически меняющихся нет
//   Purpose :      Обработчик прерывания АЦП
//-----------------------------------------

ISR (ADC_vect) {
   ADC_Value[ADC_State] = ADCH;   // сбрасываем оцифрованное значение в соответствующий буфер   
   ADC_Latch = 1;               // ставим флаг "АЦП закончил обработку входа"
   return;
}
По моей логике, я должен в main.c тоже указать их экстернами. Правильно?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Smart Fan Timer
СообщениеДобавлено: 06 авг 2018, 14:28 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 3619
Вы можете поступать разными путями, и почти все они будут в той или иной мере правильными. Вы можете объявить переменные внутри функции, и передавать их в параметрах или в возвращаемом значении. Вы можете объявить переменные глобально и прописывать их как extern. Самый простой путь - конечно объявить глобально. Особенно те, которые используются в прерывании. Потому что в прерывание нельзя передать параметров.
Если у вас массив прописан как extern в файле adc.h, и этот файл подключен к main.c, то прописывать отдельно extern с этим массивом в main.c уже не нужно, ибо он уже указан через подключенный adc.h


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Smart Fan Timer
СообщениеДобавлено: 06 авг 2018, 14:38 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2015, 17:41
Сообщения: 2599
Откуда: Русь, Новороссийск
BusMaster, благодарю.
Начинаю _понимать_ :)

Готовлюсь к попытке слияния своей ветки с мастером...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Smart Fan Timer
СообщениеДобавлено: 06 авг 2018, 15:51 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2015, 17:41
Сообщения: 2599
Откуда: Русь, Новороссийск
Допустим, есть у меня глобальная переменная в adc.c
Код:
static u08 ADC_State = LapTime;      // дефолтное состояние и вход АЦП
Соответственно, я её вписываю в adc.h
Код:
extern static u08 ADC_State = LapTime;      // дефолтное состояние и вход АЦП
Но вот вопрос: нужно ли в .h показывать инициализацию "= LapTime"? Или достаточно
Код:
extern static u08 ADC_State;      // вход АЦП
А, может, можно ещё какие-то слова из этой строки удалить, например, static?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Smart Fan Timer
СообщениеДобавлено: 06 авг 2018, 16:07 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 3619
"нужно ли в .h показывать инициализацию "= LapTime"? " - нет, ни в коем случае не нужно. получите ошибку.
"например, static?" - а вот этот static надо вообще убрать, даже из adc.с, иначе переменная будет недоступна в других файлах. static - он на то и статик, чтобы быть доступныым только в одном файле.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Smart Fan Timer
СообщениеДобавлено: 06 авг 2018, 17:38 
Старожил
Аватара пользователя

Зарегистрирован: 14 июн 2015, 17:41
Сообщения: 2599
Откуда: Русь, Новороссийск
Да, про static в данном месте я лоханулся.
А вообще? Требуется полное повторение описания переменной в экстерне или достаточно её упоминания?

Сегодня много ваших замечаний поправил, вечером попробую скомпилить и посчитать ошибки.
В мастере актуальная версия.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 86 ]  На страницу Пред.  1, 2, 3, 4  След.

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB