Specialist
Jun 25 2008, 07:52
Код
void main() {
TRISD = 0;
PORTD = 0;
PORTD.f0 = 1;
PORTD.f1 = 1;
}
В симуляторе только светодиод на порту RD1 горит. Получается, что
Код
PORTD.f1 = 1;
очищает все остальные биты ? Как мне отдельно устанавливать биты ?
Думаю тут не в компиляторе проблема. Если 18-й пик, то нужно LATD использовать. Если 16-й, я бы ввёл дополнительную переменную, можно всё красиво в виде структуры с соответствующими полями сделать, менял сначала нужный бит в этой переменной и записывал её в порт. Точно помню, что так делал с PORTA. Он тоже "не запоминает" биты.
Specialist
Jun 25 2008, 09:22
Огромное спасибо!
Я только игрался с 16F84A и то на АСМе, а сейчас у меня пик 18F4550, пытаюсь на си кодить.