Ich kann kein Java, von daher kann ich Dir hier keine 100%ige Auskunft geben. Ich habe mir aber gerade mal ein paar Codeschnippsel von Java angeschaut - das sieht C++ schon sehr, sehr ähnlich. Soweit ich das gelesen habe, sind bei Java nur solche Sachen wie dynamische Speicherverwaltung oder überladen von Operatoren weggelassen. Solche Sachen braucht man bei µC-Programmierung sowieso sehr selten. Der "schlimmste" Unterschied ist wohl, dass es bei Java keine Zeiger gibt, die bei C/C++ relativ häufig eingesetzt werden. Man kann auch ohne auskommen, gelegentlich sind sie aber sehr hilfreich. Aber die Zeigerarithmetik kann man sich eigentlich auch recht leicht aneignen.
Einen Controller in C++ zzu programmieren, dürfte nach kurzer Einarbeitung für Dich eigentlich kein Problem sein. Der AVR-gcc-Compiler unterstütz C++ auch fast komplett, bis auf die new- und delete-Operatoren.

Wenn Du Dich vom Objektorientierten loslösen kannst, kannst Du auch reines C programmieren. Das ist wie gesagt der Standard für Mikrocontroller und dazu wirst Du auch hier die meiste Unterstützung bekommen.

Gruß,
askazo