| Автор |
Съобщение |
|
gdh
Ранг: Минаващ
Регистриран на: Нед Окт 15, 2006 8:01 pm Мнения: 46
|
 MPLAB C18 Delay проблем
Някой дали може да удари едно рамо. Реших да пробвам въпросния компилатор но ударих на камък в началото още. Проблема е следния: опитвам се да замигам един светодиод на пин RA1 на 18F4580
Вместо диода да загасне след определеното закъснение той свети постоянно. Така както е написано в кода който следва диода свети бледо, а ако вместо 10 подам 20 като параметър на Delay100TCYx свети по ярко  . Предполагам съм изтървал някоя инициализация но нещо не успявам да открия коя. Хич не мога да си обясня връзката между закъснението и силата на светене
Хардуера е вързан правилно, с CCSC нямам проблеми.
|
| Сря Дек 13, 2006 11:14 pm |
|
 |
|
nik
Ранг: Форумен бог
Регистриран на: Сря Мар 22, 2006 3:25 am Мнения: 6418
|
промяната в силата на светене говори за две неща
1. мени се коефициента на запълване
2. честотата е доста по висока от колкото очакваш
така като гледам програмата трябва да зададеш закъснение преди и след загасването на светодиода, за да свети половин секунда и след това да не свети още толкова, после трябва да си изчислиш при твоя кварц точно колко ще ти е времето на закъснение, защото и в момента светодиода мига, но прекалено бързо за да го видиш
|
| Сря Дек 13, 2006 11:45 pm |
|
 |
|
Cvetanov
Ранг: Новодошъл
Регистриран на: Пон Фев 21, 2005 2:14 pm Мнения: 191 Местоположение: Varna
|
щом един път свети слабо а след това по-силно следва че в крайна сметка мига но прекалено бързо
//ЕДИТ
докато съм писал @nik е отговорил
_________________ Шанс едно на милион, обикновено се случва девет от десет пъти.
|
| Сря Дек 13, 2006 11:52 pm |
|
 |
|
gdh
Ранг: Минаващ
Регистриран на: Нед Окт 15, 2006 8:01 pm Мнения: 46
|
Не, няма мигане. Светенето е постоянно и слабо. Както се вижда от кода няма цикли.
Пробвах и да пиша в LATА вместо PORTA и пак същия резултат.
|
| Сря Дек 13, 2006 11:59 pm |
|
 |
|
Cvetanov
Ранг: Новодошъл
Регистриран на: Пон Фев 21, 2005 2:14 pm Мнения: 191 Местоположение: Varna
|
щом свети по-слабо значи мига.
сложи накрая на main да видим тогава какво ще се получи
_________________ Шанс едно на милион, обикновено се случва девет от десет пъти.
|
| Чет Дек 14, 2006 12:24 am |
|
 |
|
Gogo
Ранг: Форумен бог
Регистриран на: Чет Фев 24, 2005 11:41 pm Мнения: 1049 Местоположение: Pz
|
Пробвай така:
Освен това, след като свалиш пина в "0", трябва да поставиш още едно закъснение.
А това: delay_ms(500); не е вярно - стойността в скобите не може да е по-голяма от 255 (unsigned char).
|
| Чет Дек 14, 2006 8:26 am |
|
 |
|
gdh
Ранг: Минаващ
Регистриран на: Нед Окт 15, 2006 8:01 pm Мнения: 46
|
Основния проблем не е, че не мига диода а че не мога да го загася след като съм го запалил
LATAbits.LATA1 = 1;
Delay100TCYx(10);
LATAbits.LATA1 = 0;
Това би трябвало да накара диода да светне за съвсем кратко време, обаче той или свети постоянно когато увелича закъснението  или свети слабо когато намаля или махна нацяло закъснението. Това е след последните ми опити.
Нещо не инициализирам пустия порт като хората и предполагам че някой модул смущава изхода на пин-а.
Съгласен съм че дори като свети силно диода като че ли трепти така че има някакво премигване. Първоначално си мислех че се ресетва и от това е трептенето ама сложих един Sleep на края и е без промяна
Трябва да се чете даташита основно ама все не остава време. Няма ли някой дето тоя проблем да му звучи познато
|
| Чет Дек 14, 2006 11:44 am |
|
 |
|
Syrius-B
Ранг: Форумен бог
Регистриран на: Пон Яну 30, 2006 2:48 am Мнения: 1248 Местоположение: София
|
В разпитване и разговори също се губи време, и не по-малко.....
Така че, по-добре чети!
|
| Чет Дек 14, 2006 11:47 am |
|
|