嗯,请教不敢当。我并不是说我的程序已经完美,比如你说的过中天翻转我没考虑过,好吧,我根本不知道这是什么概念。
以下是我的程序,也没什么可取,你会发现选择分支里面有重复判断,但我把它去掉后会出现一些莫名其妙的情况。
Deg_Per_Step:分辨率
dra,dde是两个轴距离目标的距离,前面加abs是指绝对值
- if (abs_dra > Deg_Per_Step) {
- if ((dra >= 180) || ((dra < 0) && (dra > -180)))
- Me();
- else if ((dra <= -180) || ((dra > 0) && (dra < 180)))
- Mw();
- }
- if (abs_dde > Deg_Per_Step) {
- if (dde > 0)
- Mn();
- else if (dde < 0)
- Ms();
复制代码
- void Me() {
- bitSet(RA_PORT, RA_STEP);
- ra -= Deg_Per_Step;
- if (azm < 0)
- ra += 360.0;
- bitClear(RA_PORT, RA_STEP);
- }
复制代码 |